如何控制EditText框的外观?

时间:2016-10-07 14:51:56

标签: java android timer android-edittext

我打算有一个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框的部分,提前感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

正如贾斯汀所说,你需要将你的EditText的可见性设置为android:visibility ="不见了#34; 在XML中。您可以在计数器函数之前获取EditText的引用并设置input.setVisbility(View.GONE);

确保在计时器倒计时到0之前完成此操作

答案 1 :(得分:1)

看起来您的EditTextR.id.enterAnswer)正在XML布局上定义。因此,您需要在XML文件中将默认可见性设置为android:visibility="gone"。然后,在计时器完成时在Java代码中设置input.setVisibility(View.VISIBLE);