我試圖填充listview
,數據通過創建它的意圖傳遞給活動。您看到的println
聲明確認數據正確傳遞(即打印了預期內容,這意味着適配器中引用的ArrayList
已正確初始化)。不過,我一直就行了NullPointerException在填充BaseAdapter中的數據時
content.setText(Html.fromHtml(cmts.get(position).content));
一定有什麼東西錯在適配器得到一個NullPointerException
- 也許在getItem()時,或許我對cmts.get(position)
電話是不是做我覺得是,但在這一點上,我無法弄清楚。
public class CommentsView extends Activity {
ArrayList<Comment> cmts;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_comments_view);
cmts = (ArrayList<Comment>) getIntent().getExtras().getSerializable("clist");
for (Comment c : cmts) {
System.out.println("CMTinCV: " + c.content);
}
ListView lv = (ListView)findViewById(R.id.commentsList);
CommentAdapter ca = new CommentAdapter();
lv.setAdapter(ca);
}
class CommentAdapter extends BaseAdapter {
public CommentAdapter(){
}
@Override
public int getCount() {
return cmts.size()-1;
}
@Override
public Object getItem(int position) {
return cmts.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = getLayoutInflater().inflate(R.layout.commentbox, null);
TextView content = (TextView)findViewById(R.id.commentText);
TextView author = (TextView)findViewById(R.id.commentAuthor);
TextView date = (TextView)findViewById(R.id.commentDate);
content.setText(Html.fromHtml(cmts.get(position).content));
author.setText(cmts.get(position).author.name);
date.setText(cmts.get(position).date);
}
return convertView;
}
}
}
你必須使用convertView來檢索內容,作者,日期。 – Blackbelt 2013-02-27 08:59:23