0

expandableListView で子のテキスト値を取得しようとしています。

onchildclick イベントで nullpointerexception を取得しています。

 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;
    }

  });

これが機能しない理由を知っている人はいますか?可能であれば助けてください

編集

アダプタは次のとおりです。

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
     }
4

1 に答える 1

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

この関数は常にnull を返します。何らかの方法 ( を使用するなどtoString()) で null にアクセスしようとすると、Null ポインター例外が発生します。実際のデータを返すには、この関数を実装する必要があります。

修正はおそらく次のとおりです。

public Object getChild(int groupPosition, int childPosition) {
    return ExpList.arrChildelements[groupPosition][childPosition];;
}
于 2012-05-24T18:03:51.990 に答える