单击侦听器上的非final变量

时间:2014-02-21 02:01:07

标签: android eclipse textfield onclicklistener

我正在制作一个Android应用程序。我有一个TextField和一个按钮。根据文本字段的值,用户单击按钮后我想制作一些东西。我有代码:

EditText et = (EditText)findViewById(R.id.editText1);
String value = et.getText().toString();
ImageButton ib = (ImageButton)findViewById(R.id.imageButton1);
ib.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (value = "a" ) {
            //do something }
            }
        });

然而,这并没有编译,说"不能引用在不同方法中定义的内部类中的非最终变量值"。有没有什么办法解决这一问题?非常感谢

3 个答案:

答案 0 :(得分:2)

使用 final String value = et.getText().toString();

然后使用, if(value.equals("a") { }

答案 1 :(得分:1)

如果你想比较一个字符串的值,你应该使用“equals”方法而不是“=”。

代码如下所示:

EditText et = (EditText)findViewById(R.id.editText1);
final String value = et.getText().toString();
ImageButton ib = (ImageButton)findViewById(R.id.imageButton1);

ib.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        if (value.equals("a") ) {
           //do something }
        }
    });

答案 2 :(得分:0)

final String value = et.getText().toString();