【问题标题】:Error android: Your content must have a ListView whose id attribute is android.R.id.list错误 android: 您的内容必须有一个 id 属性为 android.R.id.list 的 ListView
【发布时间】:2013-11-30 21:19:11
【问题描述】:

大家好,我需要一些帮助来解决我的问题。我想在database 中显示所有数据。但是当我尝试显示时,我在日志 Cat 中出现这样的错误:您的内容必须有一个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"
    />

感谢您的帮助...

【问题讨论】:

  • 尝试使用@android:id/list而不是@+id/android:list

标签: android android-listview


【解决方案1】:

android:id="@+id/android:list" 更改为android:id="@android:id/list",这应该可以完成工作。

【讨论】:

    【解决方案2】:

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

    taskList = getListView();
    

    【讨论】:

    • 谢谢.. 错误已经消失。但数据没有显示。在 DDMS 显示中有一些数据,但是当我尝试查看它时没有显示任何内容
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多