2012-03-10 3 views
0

Я пытаюсь сгладить последние несколько ошибок в моем приложении. При моей текущей настройке пользователь просматривает серию списков (Category -> source -> title). Основываясь на позиции из списка, я передаю int, который используется моим курсором для фильтрации результатов и предоставления элементов, принадлежащих ранее щелкнутому элементу. После нескольких переходов через различные действия он сбрасывается с тех пор, как приложение теряет значение указанного int (возвращаясь назад и вперед через действия). Я пытаюсь настроить getextra(), чтобы он не потерял это значение. У меня есть настройка, чтобы помещать и получать эти ints, но у меня проблемы с привязкой их к моему курсору, так как он хочет получить доступ к этим 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); 

     } 

Моя база данных имеет несколько таблиц, то один для выше курсора изображение ниже. enter image description here

Эта установка может быть не лучшим методом получения результата, который я хочу, но являюсь новичком для 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) 

Вот снимок экрана ломаются, что происходит. enter image description here После изменения статического Int enter image description here после изменения дополнительной статической enter image description here

+0

Из кода, которым вы поделились, неясно, что вы подразумеваете под этим: «У меня есть настройка для установки и получения этих целых чисел, но у меня проблемы с привязкой их к моему курсору, поскольку он хочет получить доступ к этим int в статическом но я не стану статично ». Каковы статические переменные, к которым курсор обращается? – elevine

+0

Если бы я изменить курсор // извлекает все заголовки \t \t Cursor getTitles общественных() \t \t { \t \t возвращение myDataBase.query (TITLE_TABLE, новый String [] { \t \t KEY_ID, \t \t KEY_TITLE, \t \t KEY_TITLEDESC, \t \t KEY_TITLESTORY, KEY_CATEGORY, KEY_SOURCE, \t \t}, \t \t KEY_CATEGORY + "=" + title.categoryClick + "AND" + KEY_SOURCE + "=" + title.sourceClick, null, null, null, KEY_TITLEDESC); \t \t} – maebe

+0

Чтобы получить int, я вытаскиваю из предыдущего намерения, он хочет, чтобы я менял int sourceClick = extras.getInt ("sourceclick"); к статическому. Который, если я делаю это Bundle extras = getIntent(). GetExtras(); не могут быть доступны статическим способом. – maebe

ответ

0

Основываясь на скриншотах, вы не должны делать статические ссылки на ваши Связки. Внесите их в переменные экземпляра и установите их каждый раз, когда вы вызываете метод onCreate или onResume.

+0

Итак, какая строка - 55 (должно быть в пределах onListItemClick)? Это строка, которая //titleClickSound.start(); Я лаял не то дерево. +1 за то, что помог мне увидеть ошибку в моей отладке. Поэтому не проблема с моей позицией, а проблема с моим окончательным MediaPlayer titleClickSound = MediaPlayer.create (это, R.raw.button50); \t titleClickSound.start(); Не знаете, почему это срабатывает иногда и в других случаях, но меня выводит на правильный путь. Комментирование строки предотвращает ошибку. – maebe

+0

Все фиксированные. TY для времени. Принимая ваш ответ, чтобы дать репутацию, чтобы помочь мне в этом. – maebe

Смежные вопросы