【发布时间】:2012-02-18 09:30:35
【问题描述】:
我定义了一个自定义 itemAdapter 类,它从数据库中填充我的ListView。我的数据库有大约 11 列,其中我的列表仅显示姓名、地址和其他相关详细信息。当我单击列表项时,我的应用程序调用一个意图并启动另一个活动,该活动显示从列表中单击的数据库行的所有详细信息。但我无法让rowid 做到这一点。我的应用程序总是出现运行时错误并询问Force Close。以下是我的onCreate() 方法的一部分:
ListView lv;
//other parts of code
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position,
long id) {
listIntent = new Intent(garageFinder.this,list_detail.class);
Cursor c= (Cursor)itemsAdapter.getItem(position);
listIntent.putExtra("g",c.getInt(c.getColumnIndex("_id")));
startActivity(listIntent);
}
});
为了从意图中检索额外内容,我正在使用这个:
Bundle bundle= getIntent().getExtras();
int id = bundle.getInt("g");
好吧,我按照建议关闭了光标,但一些问题仍然存在。以下是错误日志:
02-18 17:25:43.718: ERROR/AndroidRuntime(526): FATAL EXCEPTION: main
02-18 17:25:43.718: ERROR/AndroidRuntime(526): java.lang.ClassCastException: java.lang.Integer
02-18 17:25:43.718: ERROR/AndroidRuntime(526): at car_app.garage.garageFinder$1.onItemClick(garageFinder.java:82)
02-18 17:25:43.718: ERROR/AndroidRuntime(526): at android.widget.AdapterView.performItemClick(AdapterView.java:284)
02-18 17:25:43.718: ERROR/AndroidRuntime(526): at android.widget.ListView.performItemClick(ListView.java:3382)
02-18 17:25:43.718: ERROR/AndroidRuntime(526): at android.widget.AbsListView$PerformClick.run(AbsListView.java:1696)
02-18 17:25:43.718: ERROR/AndroidRuntime(526): at android.os.Handler.handleCallback(Handler.java:587)
02-18 17:25:43.718: ERROR/AndroidRuntime(526): at android.os.Handler.dispatchMessage(Handler.java:92)
02-18 17:25:43.718: ERROR/AndroidRuntime(526): at android.os.Looper.loop(Looper.java:123)
02-18 17:25:43.718: ERROR/AndroidRuntime(526): at android.app.ActivityThread.main(ActivityThread.java:4627)
02-18 17:25:43.718: ERROR/AndroidRuntime(526): at java.lang.reflect.Method.invokeNative(Native Method)
02-18 17:25:43.718: ERROR/AndroidRuntime(526): at java.lang.reflect.Method.invoke(Method.java:521)
02-18 17:25:43.718: ERROR/AndroidRuntime(526): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
02-18 17:25:43.718: ERROR/AndroidRuntime(526): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
02-18 17:25:43.718: ERROR/AndroidRuntime(526): at dalvik.system.NativeStart.main(Native Method)
【问题讨论】:
-
乍一看似乎还可以。你能贴一下强制关闭的日志吗
-
我发布了导致 d 问题的 d 日志。
标签: android database android-intent android-listview