gpt4 book ai didi

java - 使用带有游标适配器的 setAdapter 出现空指针异常

转载 作者:行者123 更新时间:2023-12-01 04:27:59 27 4
gpt4 key购买 nike

我正在尝试使用游标适配器,但是当我调用setAdapter时出现空指针异常,我不知道问题出在哪里。代码如下:

主要 fragment :

public class GroupsFragment extends Fragment {

private ListView mGroupList;
private GroupAdapter mGroupAdapter;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {

super.onCreateView(inflater, container, savedInstanceState);
View rootView = inflater.inflate(R.layout.fragment_shedule, container, false);

return rootView;

}

@Override
public void onActivityCreated(Bundle savedInstanceState) {

super.onActivityCreated(savedInstanceState);

GroupsDB databaseHelper = new GroupsDB(getActivity());

mGroupList = (ListView) getView().findViewById(R.id.listGroup);

Cursor cursor = databaseHelper.getGroupList();
mGroupAdapter = new GroupAdapter(getActivity(), cursor, true);

mGroupList.setAdapter(mGroupAdapter); //<---NULL POINTER EXCEPTION

databaseHelper.close();

Button buttonSend = (Button) getView().findViewById(R.id.AddGroupButton);
buttonSend.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
AddGroup();
}
});

}

private void AddGroup() {

}

}

返回游标的函数,以便仅获取列 GI.GROUP_NAME 的名称

public Cursor getGroupList() {

SQLiteDatabase db = this.getWritableDatabase();

Cursor cursor = db.query(true, GI.TABLE_NAME,
new String[] { GI._ID , GI.GROUP_NAME },
null, null,
GI.GROUP_NAME , null, null, null);
db.close();
return cursor;

}

最后是自定义适配器:

public class GroupAdapter extends CursorAdapter {

public GroupAdapter(Context context, Cursor c, Boolean f) {
super(context, c, f);
}

@Override
public void bindView(View view, Context context, Cursor cursor) {
TextView name = (TextView)view.findViewById(R.id.groupItem);
name.setText(cursor.getString(1));
}

@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(context);
View v = inflater.inflate(R.layout.group_list_item, parent, false);
return v;
}
}

最佳答案

 mGroupList.setAdapter(mGroupAdapter);

从这一行开始,要么 mGroupList 为 null,要么 mGroupAdapter 为 null。

您应该检查布局文件中的 ListView id

其他

分享你的日志cat将有助于更清楚地理解问题。

SQLiteDatabase db = this.getWritableDatabase();

我认为你应该使用 getReadableDatabase();

这里您仅对数据库执行查询。

关于java - 使用带有游标适配器的 setAdapter 出现空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18317676/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com