错误:无法解析符号' edit_message'在MyFirstApp教程中

时间:2015-10-02 10:40:25

标签: java android

这是MyActivity.java中的代码:

public class MyActivity extends AppCompatActivity {

public final static String EXTRA_MESSAGE = "com.mycompany.myfirstapp.MESSAGE";

/** Called when the user clicks the Send button */
public void sendMessage(View view){
    Intent intent = new Intent(this, DisplayMessageActivity.class);
    EditText editText = (EditText) findViewById(R.id.edit_message);
    String message = editText.getText().toString();
    intent.putExtra(EXTRA_MESSAGE, message);
    startActivity(intent);
    }

}

它表示无法解析符号' edit_message' (见第6行)。 这个问题的答案是将这个字符串添加到strings.xml中,但它已经存在,并且声明得很好:

<resources>
    <string name="app_name">My First App</string>
    <string name="edit_message">Enter a message</string>
    <string name="button_send">Send</string>
    <string name="action_settings">Settings</string>
    <string name="title_activity_main">MainActivity</string>
    <string name="title_activity_display_message">My Message</string>
    <string name="hello_world">Hello world!</string>
</resources>

Gradle Build中的错误消息是: 错误:(21,57)错误:找不到符号变量edit_message

为什么找不到这个字符串?

我已经盯着这一段很长一段时间而且几乎感到惭愧我无法解决它......我的意思是,这是一个大声哭泣的教程。任何帮助都会非常苛刻!

2 个答案:

答案 0 :(得分:1)

您的代码正在寻找名称为“edit_message”的'EditeText'元素(不适用于具有此名称的String),因此您的布局xml文件应包含EditText元素id {{1 }}

edit_message

答案 1 :(得分:0)

如果您尝试访问资源,请执行以下操作:

String s = context.getResources().getString(id);

,ID为:R.id.edit_message

上下文可以由this.getBaseContext()替换。

要访问EditText,需要在Layout的XML文件中声明(或在运行时声明)。