在onChitClick上获取nullpointerexception

时间:2012-05-24 17:46:22

标签: java android expandablelistview expandablelistadapter

尝试在expandableListView中获取child的文本值。

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

1 个答案:

答案 0 :(得分:3)

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

此函数将始终返回null。尝试以任何方式访问null(如使用toString())将创建Null指针异常,您必须实现此函数以返回实际数据。

修复可能是:

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