当我尝试使变量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.
}
});
}
答案 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.";