我正在尝试解决我的应用程序中的最后几个错误。使用我当前的设置,我让用户浏览一系列列表视图(类别-> 源-> 标题)。根据来自列表视图的位置,我传递了一个 int,我的光标使用它来过滤结果并给出属于先前单击的项目的项目。在通过不同的活动导航几次后,由于应用程序失去了所述 int 的值(在活动中来回移动),它崩溃了。我正在尝试设置一个 getextra() 所以它不会丢失这个值。我已经设置好放置和获取这些整数,但无法将它们链接到我的光标,因为它想以静态方式访问这些整数,但我没有以静态方式获取它们。
public class title extends ListActivity {
Bundle extras = getIntent().getExtras();
int categoryClick = extras.getInt("cateClick");
int sourceClick = extras.getInt("sourceclick");
...
@Override
protected void onListItemClick(ListView list, View v, int position, long id)
{
super.onListItemClick(list, v, position, id);
titleClick = position;
final Intent intent = new Intent(this, inputpage.class);
intent.putExtra("cateclick", categoryClick);
intent.putExtra("sourceclick", sourceClick);
intent.putExtra("titleclick", titleClick);
startActivity(intent);
}
我的光标与我使用的光标没有变化,看起来像这样
// retrieves all the descriptions for the edittext fields
public Cursor getUserWord()
{
return myDataBase.query(USER_WORD_TABLE, new String[] {
KEY_ID,
KEY_CATEGORY,
KEY_SOURCE, KEY_TITLE, KEY_USERWORD, KEY_QUICK
},
KEY_CATEGORY+ "=" + categories.categoryClick + " AND " + KEY_SOURCE+ "="
+source.sourceClick + " AND " + KEY_TITLE+ "=" + title.titleClick,
null, null, null, KEY_ID);
}
我的数据库有多个表,上面游标的表是下图。
这种设置可能不是获得我想要的结果的最佳方法,但对于 android、sqlite 和 java 来说,这是我能够为我需要的东西而工作的东西。
我在尝试切换到 getextra 之前遇到的错误是
03-10 16:06:14.653: E/AndroidRuntime(939): Uncaught handler: thread main exiting due to uncaught exception
03-10 16:06:14.683: E/AndroidRuntime(939): java.lang.NullPointerException
03-10 16:06:14.683: E/AndroidRuntime(939): at wanted.pro.madlibs.source.onListItemClick(source.java:55)
03-10 16:06:14.683: E/AndroidRuntime(939): at android.app.ListActivity$2.onItemClick(ListActivity.java:312)
03-10 16:06:14.683: E/AndroidRuntime(939): at android.widget.AdapterView.performItemClick(AdapterView.java:284)
03-10 16:06:14.683: E/AndroidRuntime(939): at android.widget.ListView.performItemClick(ListView.java:3285)
03-10 16:06:14.683: E/AndroidRuntime(939): at android.widget.AbsListView$PerformClick.run(AbsListView.java:1640)
03-10 16:06:14.683: E/AndroidRuntime(939): at android.os.Handler.handleCallback(Handler.java:587)
03-10 16:06:14.683: E/AndroidRuntime(939): at android.os.Handler.dispatchMessage(Handler.java:92)
03-10 16:06:14.683: E/AndroidRuntime(939): at android.os.Looper.loop(Looper.java:123)
03-10 16:06:14.683: E/AndroidRuntime(939): at android.app.ActivityThread.main(ActivityThread.java:4363)
03-10 16:06:14.683: E/AndroidRuntime(939): at java.lang.reflect.Method.invokeNative(Native Method)
03-10 16:06:14.683: E/AndroidRuntime(939): at java.lang.reflect.Method.invoke(Method.java:521)
03-10 16:06:14.683: E/AndroidRuntime(939): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
03-10 16:06:14.683: E/AndroidRuntime(939): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
03-10 16:06:14.683: E/AndroidRuntime(939): at dalvik.system.NativeStart.main(Native Method)
这是正在发生的事情的屏幕截图。
将额外
更改为静态后将 int 更改为静态
后