2017-02-28 92 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

很高兴为您提供帮助。接受答案,如果它的工作。 –