在Android Studio中制作变量final

时间:2014-06-10 15:15:33

标签: java android

当我尝试使变量A(String)等于e(来自纯文本) 这出现在错误行中(在下面的代码中):

Variable 'e' is accessed from within inner class, needs to be declared final.

我不知道如何制作' e'最终

public void MORSE(View v)
    {

        EditText e=(EditText)findViewById(R.id.text);
        TextView T=(TextView)findViewById(R.id.translation);
        Button TRAD=(Button) findViewById(R.id.translate);
        TRAD.setOnClickListener(new View.OnClickListener() {
            @Override
        public void onClick(View view){

        String A;
        A=""+e;                        //HERE IS THE ERROR.

  }
});
}

2 个答案:

答案 0 :(得分:1)

您正在尝试将字符串添加到EditText:

 A=""+e;

这无法完成 您可能希望将字符串添加到字符串中,而不是:

 A = "" + e.getText().toString();

答案 1 :(得分:1)

您不能将e分配给a,因为e是edittext而a是String。这是一个java问题,我建议你在进入android之前从thenewboston的教程中学习java。 无论如何,你需要使用

A = e.getText();

不需要使用final关键字的最终变量。

在这里使用final关键字会导致问题。最终变量无法编辑,因为变量将保存EditText的文本表示,而不是它的实际文本,因此不会成为解决方案。但是,为了完整起见,最终变量如下所示:

final String finalString = "This string will now for ever hold this value. This can't be changed.";