有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java错误:无法解析MyFirstApp教程中的符号“edit_message”

这是MyActivity中的代码。爪哇:

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);
    }

}

它表示无法解析符号“编辑消息”(见第6行)。 这个问题的答案是将这个字符串添加到字符串中。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)错误:找不到符号变量编辑_消息

为什么找不到这根绳子

我已经盯着这个看了很长一段时间,几乎为自己解决不了这个问题而感到羞愧。。我是说,这是一个大声哭喊的教程。非常感谢您的帮助


共 (2) 个答案

  1. # 1 楼答案

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

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

    id是:R.id.edit_message

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

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

  2. # 2 楼答案

    您的代码正在查找名为“edit_message”的“EditText”元素(而不是具有此名称的字符串),因此布局xml文件应该包含EditText元素和id{}

    <EditText android:id="@+id/edit_message"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        />