Android 将值从extra传递到游标

Android 将值从extra传递到游标,android,cursor,extra,Android,Cursor,Extra,我正在努力消除我的应用程序中的最后几个错误。在我当前的设置中,我让用户浏览一系列列表视图(类别->源->标题)。根据listview中的位置,我传递一个int,我的光标使用该int来过滤结果,并给出属于先前单击的项的项。在不同的活动中导航几次后,它崩溃了,因为应用程序丢失了所述int的值(在活动中来回移动)。我正在尝试设置getextra(),以便它不会丢失此值。我已经设置好放置和获取这些int,但是在将它们链接到我的游标时遇到了问题,因为它希望以静态方式访问这些int,但我没有以静态方式获取它

我正在努力消除我的应用程序中的最后几个错误。在我当前的设置中,我让用户浏览一系列列表视图(类别->源->标题)。根据listview中的位置,我传递一个int,我的光标使用该int来过滤结果,并给出属于先前单击的项的项。在不同的活动中导航几次后,它崩溃了,因为应用程序丢失了所述int的值(在活动中来回移动)。我正在尝试设置getextra(),以便它不会丢失此值。我已经设置好放置和获取这些int,但是在将它们链接到我的游标时遇到了问题,因为它希望以静态方式访问这些int,但我没有以静态方式获取它们

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更改为static之后 将“额外”更改为“静态”后

根据屏幕截图,您不应该对捆绑包进行静态引用。让它们成为实例变量,并在每次调用onCreate或onResume方法时设置它们。

从您共享的代码中,不清楚您的意思是什么:“我已经设置好放置和获取这些int,但无法将它们链接到我的游标,因为它希望以静态方式访问这些int,但我无法以静态方式获取它们。”您的游标正在访问哪些静态变量?如果将游标更改为//检索所有标题公共游标getTitles(){return myDataBase.query(TITLE_TABLE,new String[]{KEY_ID,KEY_TITLE,KEY_TITLEDESC,KEY_TITLESTORY,KEY_CATEGORY,KEY_SOURCE,},KEY_CATEGORY+“=”+TITLE.categoryClick+”和“+KEY_SOURCE+”=”+TITLE.sourceClick,null,null,KEY_TITLEDESC);}为了从以前的意图中获取int,它希望我将int sourceClick=extras.getInt(“sourceClick”);更改为static。如果我这样做,则无法以静态方式访问extras=getIntent().getExtras();当应用程序崩溃时,您得到的异常的堆栈跟踪是什么?那么哪一行是55(应该在onListItemClick内)?那么哪一行是55(应该在onListItemClick内)?这是//titleClickSound.start();我在这里查错了树。+1帮助我看到调试中的错误。因此,这不是我的位置问题,而是我的最终MediaPlayer titleClickSound=MediaPlayer.create的问题(这个,R.raw.button50);titleClickSound.start();不知道为什么它有时会工作,有时会崩溃,但会让我走上正确的道路。对行进行注释可以防止出现错误。时间已全部修复。接受您的答案,以感谢代表帮助我解决此问题。