2012-05-24 2 views
0

Попытка получить текстовое значение дочернего элемента в expandableListView.Получение nullpointerexception onChildClick

Получение ошибки nullpointerexception в событии onchildclick.

E/AndroidRuntime(358): at tournament.tracker.pkg.ExpList$5.onChildClick(ExpList.java:124) 

Строка 124 - линия adapter.getChild.

Я пытаюсь передать строковое значение дочернего элемента, которое было нажато на другое действие.

expList.setOnChildClickListener(new OnChildClickListener() 
    { 

    @Override 
    public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { 
     ExpandableListAdapter adapter = getExpandableListAdapter(); 
     gametype = adapter.getChild(groupPosition, childPosition).toString(); 
     //--------------------- 
     Intent pullt = new Intent(ExpList.this, JsonActivity.class); 
     Bundle bundle = new Bundle(); 
     bundle.putString("gametype", gametype); 
     pullt.putExtras(bundle); 
     pullt.putExtra("gametype", gametype); 

     startActivity(pullt); 
     //--------------------- 
     return false; 
    } 

    }); 

Кто-нибудь знает, почему это не работает? Пожалуйста, помогите, если возможно

EDIT

Вот адаптер:

public class ExpAdapter extends BaseExpandableListAdapter { 

     private Context myContext; 
     public ExpAdapter(Context context) { 
     myContext = context; 
     } 

     @Override 
     public Object getChild(int groupPosition, int childPosition) { 
     return null; 
     } 

     // Other code - not relevant 
    } 
+0

Как именно исключение выглядит? (aka: stacktrace plz!) – yoshi

+0

Где вы получаете исключение NullPointerException? –

+0

Быстро предположить, что возможным вариантом будет только «адаптер». Поэтому 'getExpandableListAdapter()' возвращает 'null'. Установили адаптер? – yoshi

ответ

3
public Object getChild(int groupPosition, int childPosition) { 
    return null; 
} 

Эта функция всегда возвращение нуль. Пытаться получить нуль любым способом (например, с помощью toString()) создаст исключение Null Pointer Exception, вы должны реализовать эту функцию для возврата фактических данных.

Исправление может возможно быть:

public Object getChild(int groupPosition, int childPosition) { 
    return ExpList.arrChildelements[groupPosition][childPosition];; 
} 
+0

Спасибо. Не могли бы вы дать мне быстрый пример того, как это сделать? Если у вас есть время. Спасибо за ваше время, а также – user1411823

+0

. Вы не предоставили много контекста, поэтому это слепое предположение, но попробуйте 'return ExpList.arrChildelements [groupPosition] [childPosition];' – Sam

+0

Спасибо, что вы предоставили ценные знания. См. Редактирование внизу описания для функции onChildClick. Если вы не возражаете, можете ли вы поднять мой голос. Это будет ценный вопрос/ответ для тех, кто хочет сделать то же самое. Я не мог найти никакого объяснения, как это сделать сейчас, и многие люди смогут это сделать. – user1411823

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

  • Нет связанных вопросов^_^