2016-09-24 4 views
1

私はandroid eclipseでカウントダウンタイマーを作っています。別のクラスのTextviewを使いたいです。別のクラスのテキストビューでカウントダウンを開始するにはどうすればよいですか?

これは、これは私の第二のクラスで私の最初のクラス

public class Main extends Activity { 
Spinner timerValueSpinner; 
Button startButton; 
TextView statusTextView; 
Countdown timer; 
String[] timeValues; 
Resources resourcePointer; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    timerValueSpinner = (Spinner)this.findViewById(R.id.secondsSpinner); 

    statusTextView = (TextView)this.findViewById(R.id.timerView); 

    resourcePointer = getResources(); 
    timeValues = resourcePointer.getStringArray(R.array.seconds_list); 



    startButton = (Button)this.findViewById(R.id.startButton); 
    startButton.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      Intent intent = new Intent(Main.this,Timer.class); 

      startActivity(intent); 

      if(timerValueSpinner.getSelectedItemPosition() > -1){ 
       int parsedSpinnerValue = 0; 
       parsedSpinnerValue = Integer.parseInt(timeValues[timerValueSpinner.getSelectedItemPosition()]); 

       if(parsedSpinnerValue > 0){ 
        if(timer != null){ 
         timer.cancel(); 
        } 
        timer = new Countdown(parsedSpinnerValue 
          * Countdown.oneSecond, Countdown.oneSecond,statusTextView); 

        timer.start(); 

       } 

      } 

     } 


    }); 
} 

であると私はので、私はボタンをクリックしたときに代わりに、独自のTextViewのクラスをそのstatusTextVieを取得し、まず(メイン)でそれを使用したいです2番目のクラスが表示され、カウントダウンはテキストビューから開始されます。

public class Timer extends Activity { 


TextView statusTextVie; 



@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_timer); 

    statusTextVie = (TextView)this.findViewById(R.id.timerVie); 
} 

私はここで質問をしていますので、間違いがあればごめんなさい。

答えて

0

最初のアクティビティの時間値をインテントを介して2番目のアクティビティに渡し、2番目のアクティビティでスレッドを開始してみませんか?

最初のアクティビティ:

public class Main extends Activity { 
    Spinner timerValueSpinner; 
    Button startButton; 


    String[] timeValues; 
    Resources resourcePointer; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     timerValueSpinner = (Spinner)this.findViewById(R.id.secondsSpinner); 
     resourcePointer = getResources(); 
     timeValues = resourcePointer.getStringArray(R.array.seconds_list); 



     startButton = (Button)this.findViewById(R.id.startButton); 
     startButton.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       Intent intent = new Intent(Main.this,Timer.class); 



       if(timerValueSpinner.getSelectedItemPosition() > -1){ 
        int parsedSpinnerValue = 0; 
        parsedSpinnerValue = Integer.parseInt(timeValues[timerValueSpinner.getSelectedItemPosition()]); 

        if(parsedSpinnerValue > 0){ 
         intent.putExtra("TimeValue", parsedSpinnerValue); 
         startActivity(intent); 
        } 

       } 

      } 


     }); 
    } 

第二の活動:

public class Timer extends Activity { 

    Countdown timer; 
    TextView statusTextVie; 



    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_timer); 
     Bundle extras = getIntent().getExtras(); 
     int timeVal = extras.getInt("TimeValue", 0); 
     statusTextVie = (TextView)this.findViewById(R.id.timerVie); 
     if (timeVal > 0){ 
      if(timer != null){ 
       timer.cancel(); 
      } 
      timer = new Countdown(timeVal * Countdown.oneSecond, Countdown.oneSecond,statusTextVie); 

      timer.start(); 
     } 
    } 
} 
+1

うわー、ありがとう!私はちょうどJavaプログラミングとAndroidのEclipseを学び始めているので、それほど分かりません(私はチュートリアルを見ています)。私は昨日からこれに対する解決策を見つけようとしていました。あなたはそれを解決しました。再びありがとう。 –

+0

うれしかった:) –

関連する問題