如何通过UserInput使这个变量工作?安卓

时间:2016-08-11 21:41:29

标签: java android variables user-input tostring

public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mButton = (Button)findViewById(R.id.okay);
    mEdit  = (EditText)findViewById(R.id.name);
    final TextView questionOne =(TextView)findViewById(R.id.questionOne);
    final String name = mEdit.getText().toString(); //

    mButton.setOnClickListener(
            new View.OnClickListener()
            {
                public void onClick(View view)
                {
                    Log.v("EditText", mEdit.getText().toString());
                }
            });

    mButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {

            questionOne.setText("Tell me your lucky number, " + name + "!");

        }         });
}

}

所以,我的目标是让用户写下他的名字然后用setText方法打印出来。为了做到这一点,我声明了变量“name”。但是当我运行应用程序并输入我的名字时,它只打印出“告诉我你的幸运号码!”。因此变量名称完全丢失。有人能告诉我这个变量我做错了吗? 提前谢谢!

1 个答案:

答案 0 :(得分:0)

首先,你覆盖了按钮的单击监听器。您在一点上记录了EditText内容。

无论如何,这会在加载View时立即获取文本。 (除非你将默认文本放入该字段,否则它是一个空字符串)

final String name = mEdit.getText().toString(); 

它是final,因此变量永远不会改变值。

你需要对按钮事件做出“反应”。所以,那样做。

mButton.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        String name = mEdit.getText().toString();
        questionOne.setText("Tell me your lucky number, " + name + "!");
    }         
});