我打算有一个EditText框,用户可以在计时器结束后显示输入数据。为此,我放入了计时器的onFinish部分。这不起作用,因为只要我访问屏幕视图,EditText框就会在计时器开始之前出现(按下按钮时计时器启动)。当用户按照预期输入数据并按下输入时,该框会消失,但它会在计时器开始之前出现,这是我不想要的。
new CountDownTimer(4000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
}
public void onFinish() {
number.setVisibility(View.GONE);
final TextView prompt = (TextView) findViewById(R.id.prompt);
prompt.setText(" Enter the number");
final EditText input = (EditText) findViewById(R.id.enterAnswer);
input.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN){
switch (keyCode){
case KeyEvent.KEYCODE_ENTER:
Editable answer = input.getText();
input.setVisibility(View.GONE);
prompt.setVisibility(View.GONE);
if (answer.equals(loadG1)){
score[0]=+1;
}
return true;
default:
break;
}
}
return false;
}
});
}
}.start();
这是我的程序中唯一出现EditText框的部分,提前感谢您的帮助。
答案 0 :(得分:2)
正如贾斯汀所说,你需要将你的EditText的可见性设置为android:visibility ="不见了#34; 在XML中。您可以在计数器函数之前获取EditText的引用并设置input.setVisbility(View.GONE);
确保在计时器倒计时到0之前完成此操作
答案 1 :(得分:1)
看起来您的EditText
(R.id.enterAnswer
)正在XML布局上定义。因此,您需要在XML文件中将默认可见性设置为android:visibility="gone"
。然后,在计时器完成时在Java代码中设置input.setVisibility(View.VISIBLE);
。