错误android:你的内容必须有一个ListView,其id属性是android.R.id.list

时间:2013-04-08 10:19:12

标签: android android-listview

大家好我需要帮助解决我的问题。我想在database中显示所有数据。但是当我尝试显示时,我在日志中遇到了错误:这样的内容:您的内容必须有ListView,其id属性为android.R.id.list

这是我在 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;
}

我在查看

中的代码
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;
}}

我的 read_task.xml

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

我的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"
    />

感谢您的帮助......

2 个答案:

答案 0 :(得分:1)

android:id="@+id/android:list"更改为android:id="@android:id/list",这应该可以胜任。

答案 1 :(得分:0)

使用android:id="@android:id/list",您的ListView应该通过以下方式找到:

taskList = getListView();