2015-10-02 136 views
0

不能解析符号“edit_message”这是MyActivity.java代码:错误:MyFirstApp教程

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> 

在摇篮打造的错误消息是: 错误:(21,57)错误:找不到符号变量edit_message

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

我在这个一直盯着相当长一段时间,几乎惭愧我解决不了的。我的意思是,它是大声哭泣的教程。任何帮助将非常重要!

+0

请发布您的构建文件 – Joshua

+1

您正在将edit_message声明为字符串资源并将其引用为编辑文本。 – subhash

+1

'R.id.edit_message' - >你说你有这个名字的_ID_; '输入一条消息' - >你用这个名字创建一个_String_。我们注意到,ID不是一个字符串。 – Tom

回答

1

您的代码名称为“edit_message”(未与此名称的字符串)寻找'EditText'元素,让您的布局XML文件应包含EditText元素与idedit_message

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

解决了这个问题,虽然在这段代码中,在android_id中它说:属性缺少Android命名空间前缀...当我运行应用程序时,它会在我点击发送按钮时关闭。 – Bert

+0

@BertUenk对不起,必须有冒号':'而不是下划线。我修改了代码。 – Psytho

0

如果您试图访问一个资源这样:

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

和ID是:R.id.edit_message

CON文字可以用this.getBaseContext()替代。

通过访问它需要一个EditText的布局” XML文件中声明(或在运行时声明)。