Die Klasse erweitert die Listaktivität "dessen ID -Attribut" android.r.id.List "lautet"
-
27-10-2019 - |
Frage
Ich versuche, meine Hauptaktivität auf "ListActivity" zu erweitern (zuvor erstreckt sich auf: Aktivität), um onlistItemclick zu verwenden, aber der logcat sende mir "Ihr Inhalt muss eine ListView haben, deren ID-Attribut" android.r.id.List "ist '". (Ich verwende SQLite für die Population der ListView).
mi xml ist:
<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>
Dies ist der vollständige XML für die 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>
Meine Hauptklasse, um die ListView zu verarbeiten:
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);
}
}}
ich lese Android: Ihr Inhalt muss eine ListView haben, deren ID -Attribut Android.r.id.List lautet, oder: RunTimeException: Ihr Inhalt muss eine ListView haben, deren ID -Attribut "android.r.id.List" lautet, und andere Fragen, aber funktioniert nicht für mich, was ist hier los?
Ich würde Ihre Hilfe wirklich schätzen
Lösung
Wenn Sie sich ausdehnen möchten ListActivity
du solltest benutzen
android:id="@android:id/list"
Und du wirst deine bekommen ListView
wie
ListView listview = this.getListView();
oder
ListView listview = (ListView)findViewById(android.R.id.list);
//consider android.R prefix
Hier ist die detaillierte Erklärung: Wie kann ich GetListView () in Aktivität verwenden?