如何从 android 中的倒数计时器更新文本视图?
How to update a textview from a countdowntimer in android?
当用户赢得超过 100 个代币时,id 会弹出一个图像并计算代币数量并播放一些声音。添加一点.. pizzazz。但是无论我怎么尝试,我要么得到一个空指针,要么得到第一个数字,不计算。
我怎样才能做到这一点?
这是我目前的方法。围绕一堆实验改变了它。
public void bonusPop(int mWinnings){
final int count = 0;
//token prize popup1
final Dialog payDialog = new Dialog(GemSlotMachineActivity.this);
payDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
payDialog.setContentView(R.layout.win_pop);
payDialog.setCancelable(true);
payDialog.show();
new CountDownTimer(mWinnings * 50, 50) {
public void onTick(long millisUntilFinished){
//count++;
TextView winText = (TextView) payDialog.findViewById(R.id.winText);
winText.setText(Float.toString(count));
}
public void onFinish() {
finish();
}
}.start();
};
}
额外功劳:对话框中显示的图像背景,在文本后面,是透明的,因为我想看到这个弹出窗口后面的插槽。但是它的三个面都是白色的。有什么想法吗?
尝试初始化此代码:
TextView winText = (TextView) payDialog.findViewById(R.id.winText);
在 CountDownTimer
之外,而不是 Float.toString(count)
使用 String.valueOf(count)
。我还看到你在你的 count
中使用了 final ,这是不对的,因为你增加了它,只是将它作为全局变量。我修改了你的代码如下。试试看是否有效
int count = 0;
public void bonusPop(int mWinnings){
final Dialog payDialog = new Dialog(GemSlotMachineActivity.this);
payDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
payDialog.setContentView(R.layout.win_pop);
payDialog.setCancelable(true);
payDialog.show();
TextView winText = (TextView) payDialog.findViewById(R.id.winText);
new CountDownTimer(mWinnings * 50, 50) {
public void onTick(long millisUntilFinished){
count++;
winText.setText(String.valueOf(count));
}
public void onFinish() {
finish();
}
}.start();
}
当用户赢得超过 100 个代币时,id 会弹出一个图像并计算代币数量并播放一些声音。添加一点.. pizzazz。但是无论我怎么尝试,我要么得到一个空指针,要么得到第一个数字,不计算。
我怎样才能做到这一点?
这是我目前的方法。围绕一堆实验改变了它。
public void bonusPop(int mWinnings){
final int count = 0;
//token prize popup1
final Dialog payDialog = new Dialog(GemSlotMachineActivity.this);
payDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
payDialog.setContentView(R.layout.win_pop);
payDialog.setCancelable(true);
payDialog.show();
new CountDownTimer(mWinnings * 50, 50) {
public void onTick(long millisUntilFinished){
//count++;
TextView winText = (TextView) payDialog.findViewById(R.id.winText);
winText.setText(Float.toString(count));
}
public void onFinish() {
finish();
}
}.start();
};
}
额外功劳:对话框中显示的图像背景,在文本后面,是透明的,因为我想看到这个弹出窗口后面的插槽。但是它的三个面都是白色的。有什么想法吗?
尝试初始化此代码:
TextView winText = (TextView) payDialog.findViewById(R.id.winText);
在 CountDownTimer
之外,而不是 Float.toString(count)
使用 String.valueOf(count)
。我还看到你在你的 count
中使用了 final ,这是不对的,因为你增加了它,只是将它作为全局变量。我修改了你的代码如下。试试看是否有效
int count = 0;
public void bonusPop(int mWinnings){
final Dialog payDialog = new Dialog(GemSlotMachineActivity.this);
payDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
payDialog.setContentView(R.layout.win_pop);
payDialog.setCancelable(true);
payDialog.show();
TextView winText = (TextView) payDialog.findViewById(R.id.winText);
new CountDownTimer(mWinnings * 50, 50) {
public void onTick(long millisUntilFinished){
count++;
winText.setText(String.valueOf(count));
}
public void onFinish() {
finish();
}
}.start();
}