xiaoyan_12 2013-03-27 05:16 采纳率: 25%
浏览 5373
已采纳

ListAdapter 的空指针异常

我想在List View中显示数据,但是在运行时获得Null Pointer Exception错误。

fList.setAdapter(la);

下面是我用的代码。list 在 Log 中全部打印出来了。

public class Forfattere extends Activity {
/** Called when the activity is first created. */
ArrayList<String> aList = new ArrayList<String>();
@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.forfattere);
    ListView fList = (ListView)findViewById(R.id.Author_list);
    ArrayList<String> a = DBlistbookfestival.getAuthorName();
    for(int i=0;i<a.size();i++){
        aList.add(a.get(i));
        Log.v("all_data",a.get(i));
    }
    ListAdapter1 la = new ListAdapter1(this, R.id.Author_list, aList);
    fList.setAdapter(la);
 }

private class ListAdapter1 extends ArrayAdapter<String> {  // --CloneChangeRequired
    private ArrayList<String> mList;  // --CloneChangeRequired
    public ListAdapter1(Context context, int textViewResourceId,ArrayList<String> list) { // --CloneChangeRequired
        super(context, textViewResourceId, list);
        this.mList = list;
    }

    public View getView(int position, View convertView, ViewGroup parent){
        View view = convertView;
        try{
        if (view == null) {
            LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            view = vi.inflate(R.layout.custom_radio, null);     // --CloneChangeRequired(list_item)
        }
        final String listItem = mList.get(position);    // --CloneChangeRequired                
        if (listItem != null) {
            ( (TextView) view.findViewById(R.id.textView111) ).setText(listItem);
        }}catch(Exception e){

        }
        return view;
    }
}   

如何出现的这个异常啊?

  • 写回答

2条回答 默认 最新

  • yongyong_21 2013-04-02 03:37
    关注

    使用这个方法:

    public class Forfattere extends Activity {
    /** Called when the activity is first created. */
    ArrayList<String> aList = new ArrayList<String>();
    ListAdapter1 la = null;
    ListView fList = null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.forfattere);
        fList = (ListView)findViewById(R.id.Author_list);
        ArrayList<String> a = DBlistbookfestival.getAuthorName();
        for(int i=0;i<a.size();i++){
            aList.add(a.get(i));
            Log.v("all_data",a.get(i));
        }
        la = new ListAdapter1(this,android.R.layout.simple_list_item_1, aList);
        fList.setAdapter(la);
     }
    
    private class ListAdapter1 extends ArrayAdapter<String> {  // --CloneChangeRequired
        private ArrayList<String> mList;  // --CloneChangeRequired
        public ListAdapter1(Context context, int textViewResourceId,ArrayList<String> list) { // --CloneChangeRequired
            super(context, textViewResourceId, list);
            this.mList = list;
        }
    
        public View getView(int position, View convertView, ViewGroup parent){
            View view = convertView;
            try{
            if (view == null) {
                LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                view = vi.inflate(R.layout.custom_radio, null);     // --CloneChangeRequired(list_item)
            }
            final String listItem = mList.get(position);    // --CloneChangeRequired                
            if (listItem != null) {
                ( (TextView) view.findViewById(R.id.textView111) ).setText(listItem);
            }}catch(Exception e){
    
            }
            return view;
        }
    }   
    }
    

    如果没有申明 list item,请使用android 中默认的。

    la = new ListAdapter1(this,android.R.layout.simple_list_item_1, aList);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R