класс расширяет ListActivity, чей атрибут id равен «android.R.id.list»

Я пытаюсь расширить свою основную активность до «ListActivity» (ранее распространяется на: Activity), чтобы использовать onListItemClick, но логарифм, отправьте мне «Ваш контент должен иметь ListView, атрибут id которого равен «android.r.id.list '". (я использую SQLite для заполнения ListView).

ми xml это:

<ListView
    android:id="@+id/list" // to "@id/android:list" or other styles (but nothing works)
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"/> // or closing with </ListView>

это полный xml для ListView:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ListView
    android:id="@+id/list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" /></LinearLayout>

Мой основной класс для обработки ListView:

public class lay_main extends ListActivity{
public ListView list;
private DBHelper myAdap;


/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.lay_main);

    collectXML();
    setupDataBase();
    setupAdapter();

}      
private void collectXML() 
{
    list = (ListView)findViewById(R.id.list);
}

private void setupDataBase() {
    myAdap = new DBHelper(getApplicationContext(), "courses", null, 1);
    myAdap.insertCourses();

}

private void setupAdapter()
{
if(myAdap.getCourses()!=null)
    {
    cAdapter adapter = new  cAdapter(this, R.layout.list_courses, myAdap.getCourses());
    list.setAdapter(adapter);
    }

}}

Я прочитал Android: ваш контент должен иметь ListView с атрибутом id android.R.id.list или: RuntimeException: ваш контент должен иметь ListView с атрибутом id 'android.R.id.list' и другие вопросы, но не работает для меня, что здесь происходит?

действительно был бы признателен за вашу помощь


person JLouis    schedule 19.02.2012    source источник
comment
не используйте setContentView и получите список как ListView listview = this.getListView();   -  person Sunny    schedule 19.02.2012


Ответы (1)


Если вы хотите расширить ListActivity, вы должны использовать

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

и вы получите свой ListView как

ListView listview = this.getListView();

or

ListView listview = (ListView)findViewById(android.R.id.list);
//consider android.R prefix

Вот подробное объяснение: Как использовать getListView() в Activity?

person Adil Soomro    schedule 19.02.2012