2015-10-02 112 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文件中聲明(或在運行時聲明)。