2012-02-09 20 views
0

私はちょうどこのページのようなものですListViewを使用しようとしている:onCreateメソッドでListViewエラーが発生しましたか?

http://developer.android.com/resources/tutorials/views/hello-listview.html

私はsetContentViewを使用して、私はそのレイアウトに置くListViewを使用します。ここに私のコードです:

public class ListViewTrainingsActivity extends ListActivity{ 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); // It gives me error here? 

    final String[] COUNTRIES = new String[] { 
      "Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra", 
      "Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Argentina", 
      "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan", 
      "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium", 
      "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia", 
      "Bosnia and Herzegovina", "Botswana", "Bouvet Island", "Brazil", "British Indian Ocean Territory", 
      "British Virgin Islands"}; 

    setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, COUNTRIES)); 

    ListView lv = (ListView) findViewById(android.R.id.list); 
    lv.setTextFilterEnabled(true); 

    lv.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView<?> parent, View view, 
     int position, long id) { 
     // When clicked, show a toast with the TextView text 
     Toast.makeText(getApplicationContext(), ((TextView) view).getText(), 
      Toast.LENGTH_SHORT).show(); 
    } 
    }); 

} 
    } 

と私が言うエラー取得しています:

E/AndroidRuntime(306): FATAL EXCEPTION: main 
E/AndroidRuntime(306): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.yahya.ListViewTrainings/com.yahya.ListViewTrainings.ListViewTrainingsActivity}: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list' 
E/AndroidRuntime(306):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 
. 
. 
. 
E/AndroidRuntime(306): Caused by: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list' 
E/AndroidRuntime(306):  at android.app.ListActivity.onContentChanged(ListActivity.java:245) 
E/AndroidRuntime(306):  at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:201) 
E/AndroidRuntime(306):  at android.app.Activity.setContentView(Activity.java:1647) 
E/AndroidRuntime(306):  at com.yahya.ListViewTrainings.ListViewTrainingsActivity.onCreate(ListViewTrainingsActivity.java:17) 

が、私は誰もが私が間違ってやっているものを私に伝えることができると思いますが。

あなたはidを持つ ListView要素( ListActivityを拡張することは、これを必要とする)持っている必要があります。レイアウト main.xml
+0

はこの問題のようです:http://stackoverflow.com/questions/885009/r-cannot-be-resolved-android-error 'ListView lv =(ListView)findViewById(android.R.id.list) ; '' android'を削除し、 'import'リストにeclipseで追加した参照を削除します –

答えて

2

:あなたはListActivityクラスを拡張しているので、あなたが方法getListView()呼び出すことでListViewを取得することができます。また

android:id="@android:id/list" 

を:

ListView lv = getListView(); 
+0

Worked!ありがとう:) – yahya

2
このことができます場合は、この android:id="@android:id/list"チェックであなたのリストビューIDを変更

+0

よく働いた:pありがとう=) – yahya

関連する問題