这是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
为什么找不到这个字符串?
我已经盯着这一段很长一段时间而且几乎感到惭愧我无法解决它......我的意思是,这是一个大声哭泣的教程。任何帮助都会非常苛刻!
答案 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文件中声明(或在运行时声明)。