Error android: Your content must have a ListView whose id attribute is android.R.id.list

孤街醉人 提交于 2019-12-13 07:36:15

问题


Hi everybody i need some help with my problem. I want to show all data in database. But when i try to show, i got an error in log Cat like this: Your content must have a ListView whose id attribute is android.R.id.list

This is my query in DBHelper.java

public Cursor getAll() {
    SQLiteDatabase db = getReadableDatabase();
    Cursor cur = db.query(TableName, new String[]{ID, LATITUDE, LONGITUDE, 
            RADIUS, 
            ALAMAT, KONTEKS_TUGAS}, null, null, null, null, null);
    db.close();
    return cur;
}

My code in view

public class readReminder extends ListActivity {
DBHelper helper;
ListView taskList;
ArrayList<Task> listArr;
listAdapter listadapt;

 @Override
 public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.read_task);
     taskList = (ListView) findViewById(android.R.layout.simple_list_item_1);
     helper = new DBHelper(this);
     listArr = new ArrayList<Task>();

     Cursor cur = helper.getAll();
     if(cur.moveToFirst()) {
         do {
             ArrayList temp = new ArrayList();
             temp.add(String.valueOf(cur.getString(5)).toString());
             temp.add(String.valueOf(cur.getString(6)).toString());
             listArr.addAll(temp);
         } while(cur.moveToNext());
     }
     cur.close();
     listadapt = new listAdapter(getApplicationContext(), listArr);
     taskList.setAdapter(listadapt);
 }}

listAdapter.java

public class listAdapter extends BaseAdapter {
Context konteks;
ArrayList<Task> data;

public listAdapter(Context context, ArrayList<Task> data) {
    this.konteks = context;
    this.data = data;
}

@Override
public int getCount() {
    // TODO Auto-generated method stub
    return this.data.size();
}

@Override
public Object getItem(int position) {
    // TODO Auto-generated method stub
    return null;
}

@Override
public long getItemId(int position) {
    // TODO Auto-generated method stub
    return 0;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    LayoutInflater inflater = (LayoutInflater) 
            konteks.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View view = inflater.inflate(R.layout.txt_view, null);
    TextView txt = (TextView) view.findViewById(R.id.txtView);
    txt.setText(this.data.get(position).getAlamat());
    view.setTag(this.data.get(position).getKonteks());
    return view;
}}

My read_task.xml

 <ListView 
    android:id="@+id/android:list" 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent">
</ListView>

And my txt_view.xml

<TextView
    android:id="@+id/txtView"
    android:textSize="16sp"
    android:textStyle="bold"
    android:textColor="@android:color/black"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    />

Thanks for any help...


回答1:


Use android:id="@android:id/list", and your ListView should be found by:

taskList = getListView();



回答2:


Change android:id="@+id/android:list" to android:id="@android:id/list", this should do the job.



来源:https://stackoverflow.com/questions/15876646/error-android-your-content-must-have-a-listview-whose-id-attribute-is-android-r

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!