【发布时间】:2014-03-25 16:19:47
【问题描述】:
从 parse.com 检索数据时,我收到 NullPointerException。我已经跟踪了该程序,并且确实收到了数据。我将复制适配器和完成方法的源代码。
FATAL EXCEPTION: main java.lang.NullPointerEXception at adapter.GroupChatAdapter.add(GroupChatFragment.java.79)
这是我的自定义添加
public class GroupChatAdapter extends ArrayAdapter<GroupChat>{
private List<GroupChat> chat;
private Group subscrib;
private ListView listView;
public GroupChatAdapter(Context context,
int textViewResourceId) {
super(context,textViewResourceId);
}
@Override
public View getView(final int position, View convertView, ViewGroup parent){
View v = convertView;
if(v == null){
LayoutInflater vi = (LayoutInflater)this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.list_row_group_chat, null);
}
GroupChat cht = chat.get(position);
if(cht != null){
TextView userNameText =(TextView) v.findViewById(R.id.userName);
TextView userPostText = (TextView) v.findViewById(R.id.userPost);
if(userNameText != null){
userNameText.setText(cht.userName);
}
if(userPostText!=null){
userPostText.setText(cht.userComment);
}
}
return v;
}
public void add(GroupChat chat){
this.chat.add(chat);
}
}
这里是异常发生的地方
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_group_chat, container, false);
mListView = (ListView) rootView.findViewById(android.R.id.list);
return rootView;
}
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
Bundle args = getArguments();
if (args != null && args.containsKey("groupName")){
groupNamePassed = args.getString("groupName");
}
chatsList = new ArrayList<GroupChat>();
mAdapter = new GroupChatAdapter(getActivity(),android.R.id.list);
ParseQuery<ParseObject> query = ParseQuery.getQuery("comments");
query.setLimit(1000);
query.whereEqualTo("groupName",groupNamePassed);
query.orderByAscending("createdAt");
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> objects, ParseException e) {
// TODO Auto-generated method stub
for (ParseObject groups : objects) {
chatchat = new GroupChat(groups.getString("user").toString(),groups.getString("groupComments").toString());
mAdapter.add(chatchat);
}
}
});
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
mListView.setAdapter(mAdapter);
mAdapter.notifyDataSetChanged();
messageToSend = (TextView)getView().findViewById(R.id.sendMessageText);
Button submitPost = (Button) getView().findViewById(R.id.sendMessageButton);
submitPost.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Bundle args = getArguments();
if (args != null && args.containsKey("groupName")){
groupNamePassed = args.getString("groupName");
}
String message = messageToSend.getText().toString().trim();
ParseObject commentParse = new ParseObject("comments");
commentParse.put("groupName",groupNamePassed);
ParseUser user = ParseUser.getCurrentUser();
commentParse.put("user",user.get("username").toString());
commentParse.put("groupComments",message);
commentParse.saveInBackground();
mAdapter.add(new GroupChat(user.get("username").toString(),message));
mAdapter.notifyDataSetChanged();
}
});
}
mAdapter.add(chatchat) 导致我的应用程序崩溃。我没有看到我设置的错误。任何帮助将不胜感激...
【问题讨论】:
标签: java android listview nullpointerexception parse-platform