2017-02-28 38 views
-1

我的應用程序需要生成一個隨機數並將其設置爲TextView,同時通過單擊一個按鈕,從倒數計時器的設置時間TextView。但是,我無法找到如何使其工作的解決方案。一個按鈕響應兩個textView

public class GenerateToken extends ActionBarActivity { 

TextView show; 
CountDownT timer; 

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

    show =(TextView)findViewById(R.id.textView2); 
    show.setText("60"); 
} 

public void generate (View v) 
{ 
    Random rand = new Random(); 
    int number = rand.nextInt(1999999999 - 1000000000)+1000000000; 
    TextView myText = (TextView)findViewById(R.id.textView); 
    String myString = String.valueOf(number); 
    myText.setText(myString); 
     timer.start(); 
    } 

} 
public class CountDownT extends CountDownTimer{ 

    public CountDownT (long InMillisSeconds, long TimeGap){ 
     super(InMillisSeconds,TimeGap); 
    } 

    @Override 
    public void onTick(long l){ 
     show.setText((l/1000) +""); 
    } 

    @Override 
    public void onFinish(){ 
     show.setText("Request New Token.."); 
    } 
} 
+2

歡迎使用stackoverflow。你的問題幾乎沒問題,但我無法理解錯在哪裏。目前的行爲是什麼?這與您的預期行爲有何不同?此外,如果你可以編輯你的帖子來修復那些很棒的代碼格式。 – Michael

回答

0

它很容易。只需在您的Button上設置setOnClickListener()並更改那些TextView即可。像 -

button.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        textView1.setText("Text changed on TextView 1"); 
        textView2.setText("Text changed on TextView2"); 
       } 
      }); 
0

試試這個。我猜你在你的按鈕xml中添加了onClick="generate"

public class GenerateToken extends ActionBarActivity { 

TextView show; 
TextView myText; 
CountDownT timer; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_generate_token); 
    myText = (TextView)findViewById(R.id.textView); 
    show =(TextView)findViewById(R.id.textView2); 
    show.setText("60"); 
} 

public void generate (View v) 
{ 
    Random rand = new Random(); 
    int number = rand.nextInt(1999999999 - 1000000000)+1000000000; 
    String myString = String.valueOf(number); 
    myText.setText(myString); 

    new CountDownTimer(30000, 1000) { 

     public void onTick(long millisUntilFinished) { 
      show.setText(millisUntilFinished/1000+""); 
     } 

     public void onFinish() { 
      //{code to do after the timer finishes} 
     } 

    }.start(); 

} 
} 

這裏30000爲毫秒數,1000爲間隔。所以這裏倒數30秒。根據你的需要改變時間。希望這可以幫助。

+0

謝謝。它解決了我的問題。對此,我真的非常感激。 – faiz

+0

很高興爲您提供幫助。接受答案,如果它的工作。 –