簡體   English   中英

自定義BaseAdapter空指針

[英]Custom BaseAdapter null pointer

我在lv1.setAdapter(myAdapter)lv1.setAdapter(myAdapter)了一個空ponter,我不知道為什么。 有人可以看到什么問題嗎?

我正在嘗試取得兩行清單

MyActivity.class

final ListView lv1 = (ListView) findViewById(R.id.ListView01);
          Log.d("",topicTitle.toString() + "----------" +  topicAuthor.toString()); //not null
          MyCustomBaseAdapter myAdapter =  new MyCustomBaseAdapter(DiscussionTopics.this, topicTitle , topicAuthor);
          lv1.setAdapter(myAdapter);

MyCustomBaseAdapter.class

public class MyCustomBaseAdapter extends BaseAdapter {
    private static ArrayList<String> topics;
    private static ArrayList<String> author;
    private LayoutInflater mInflater;
    public MyCustomBaseAdapter(Context context, ArrayList<String> topics, ArrayList<String> author ) {
        this.topics = topics;
        this.author = author;
        mInflater = LayoutInflater.from(context);
    }
    public long getItemId(int position) {
        return position;
    }
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder;
        if (convertView == null) {
            convertView = mInflater.inflate(R.layout.custom_row_view, null);
            holder = new ViewHolder();
            holder.title = (TextView) convertView.findViewById(R.id.title);
            holder.author = (TextView) convertView.findViewById(R.id.author);

            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }
        holder.title.setText(topics.get(position));
        holder.author.setText(author.get(position));
        return convertView;
    }
    static class ViewHolder {
        TextView title;
        TextView author;
    }
    public int getCount() {
        // TODO Auto-generated method stub
        return topics.size();
    }
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return topics.get(position);
    }
}

因此,您永遠不會在R.id.ListView01上獲得處理程序

final ListView lv1 = (ListView) findViewById(R.id.ListView01);

確保在此行之前調用setContentView()並為其提供包含R.id.ListView01的布局

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM