如何让用户“输入”答案并使editText消失? [ANDROID STUDIO]

时间:2016-09-29 20:19:04

标签: java android android-studio

这是我的代码:

import android.os.CountDownTimer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import java.util.Random;
import java.util.Scanner;


public class game1 extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_game1);


final Button loseStarter1;

    loseStarter1 = (Button) findViewById(R.id.Starter1);
    loseStarter1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            loseStarter1.setVisibility(View.GONE);

            final int[] score = {0};
            Random generateG1 = new Random();
            final int loadG1 = generateG1.nextInt(1000000)+10000;
            final TextView number = (TextView) findViewById(R.id.number);
            number.setText(" "+loadG1);

            new CountDownTimer(120000, 1000) {
                @Override
                public void onTick (long millisUntilFinished) {
                }
                public void onFinish() {
                    TextView result = (TextView) findViewById(R.id.outcome);
                    result.setText("Score: "+ score);
                }
            }.start();

            new CountDownTimer(4000, 1000) {
                @Override
                public void onTick(long millisUntilFinished) {
                }
                public void onFinish() {
                    number.setVisibility(View.GONE);
                    TextView prompt = (TextView) findViewById(R.id.prompt);
                    prompt.setText(" Enter the number");
                    EditText input = (EditText) findViewById(R.id.enterAnswer);
                    Editable answer = input.getText();
                    input.setVisibility(View.GONE);
                    if (answer.equals(loadG1)){
                        score[0] += 1;
                    }
                }
            }.start();

            }
        });
    }

}

我的想法是,我希望用户在提示后输入一个值,随机编号消失后出现的editText框,然后我想要输入后可以输入的editTest框消失。如何在随机数消失时显示文本框,并在输入答案时使其框消失?

非常感谢。

注意:我是Java dev。

的新手

1 个答案:

答案 0 :(得分:0)

"我不打算使用用户必须点击的按钮。我希望他们输入他们的答案,然后点击键盘上的Enter键提交他们的答案。"

所以不要使用按钮。将此侦听器附加到将输入输入的editText,在您的情况下为input。然后将处理逻辑放在监听器中。

input.setOnKeyListener(new OnKeyListener()
{
public boolean onKey(View v, int keyCode, KeyEvent event)
{
    if (event.getAction() == KeyEvent.ACTION_DOWN)
    {
        switch (keyCode)
        {

            case KeyEvent.KEYCODE_ENTER:
                //your action
                Editable answer = input.getText();
                input.setVisibility(View.GONE);
                if (answer.equals(loadG1)){
                    score[0] += 1;
                }
                return true;
            default:
                break;
        }
    }
    return false;
}

});