在我的Android应用程序中,我想显示从DB中检索值的列表。我使用简单的游标适配器来执行此操作,但列表视图为空。这是我的代码。我的列表视图有两行。我如何在app中使用简单的游标适配器。我做错了。请建议。 提前谢谢。
//list.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView android:layout_width="fill_parent" android:id="@android:id/android:list"
android:layout_height="fill_parent" android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"></ListView>
</RelativeLayout>
// textview.xml-->
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:weightSum="1">
<TextView android:id="@+id/column1" android:background="@drawable/mid"
android:layout_height="30dp"
android:layout_width="fill_parent" android:layout_weight="0.03"></TextView>
<TextView android:layout_height="wrap_content"
android:text="TextView" android:id="@+id/column2" android:background="@drawable/mid"
android:layout_weight="0.03" android:layout_width="fill_parent"></TextView>
</LinearLayout>
public class AddFood extends ListActivity{
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.listxml);
DataBaseHelper db = null;
try {
db = new DataBaseHelper(this);
} catch (IOException e) {
e.printStackTrace();
}
SQLiteDatabase database= db.getReadableDatabase();
Cursor c=database.query("food_list", new String[]{"_id","food_items"}, null, null, null,null,null);
startManagingCursor(c);
String[] displayfield=new String[]{"_id","food_items"};
int[] displayViews = new int[] {R.id.column1,R.id.column2};
SimpleCursorAdapter mAdapter=new SimpleCursorAdapter(getApplicationContext(),R.layout.textview, c,displayfield , displayViews);
this.setListAdapter(mAdapter);
c.close();
}
}
答案 0 :(得分:1)
对于list.xml,请使用:
<ListView android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"></ListView>
在课程档案中:
不要使用c.close();
并使用:
SimpleCursorAdapter mAdapter=new SimpleCursorAdapter(this,R.layout.textview, c,displayfield , displayViews);
setListAdapter(mAdapter);