一个按钮响应两个textView
问题描述:
我的应用程序需要生成一个随机数并将其设置为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..");
}
}
答
它很容易。只需在您的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");
}
});
答
试试这个。我猜你在你的按钮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
很高兴为您提供帮助。接受答案,如果它的工作。 –
欢迎使用*。你的问题几乎没问题,但我无法理解错在哪里。目前的行为是什么?这与您的预期行为有何不同?此外,如果你可以编辑你的帖子来修复那些很棒的代码格式。 – Michael