2014-01-12 45 views
1

我有activity_main這樣的XML:經與findViewById麻煩 - 返回null

<LinearLayout ...> 
    <EditText android.id="@+id/edit_text" 
     android:layout_weight="1" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:hint="@string/edit_message" /> 
    <Button android.id="@+id/my_send" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/button_send" 
     android:onClick="sendMessage" /> 
</LinearLayout> 

主要的Java代碼:

public class MainActivity extends Activity { 
    void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     EditText editText = (EditText) findViewById(R.id.edit_text); 
     if (editText == null) 
      Log.v("editText", "null editText"); 
     else 
      Log.v("editText", "good editText"); 
    } 
} 

顯示是正確的,我可以看到的EditText和Button領域。但是,對於editText,我總是得到NULL。我讀過以前的問題。他們中的大多數都是因爲沒有使用setContentView(R.layout.active_main)。但我找不到爲什麼我的代碼存在問題。任何幫助是極大的讚賞。

回答

4

你的XML有問題

機器人:你在利用.代替: ID不android.id

2

。所以請修正如下:

<LinearLayout ...> 
    <EditText android:id="@+id/edit_text" 
     android:layout_weight="1" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:hint="@string/edit_message" /> 
    <Button android:id="@+id/my_send" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/button_send" 
     android:onClick="sendMessage" /> 
</LinearLayout>