마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

리스트뷰 어댑터 질문요..고수님들

0 추천

에러가 뜨네요.. 왜이럴까요

에러메시지....

 FATAL EXCEPTION: main
                  Process: com.example.pc., PID: 3454
                  java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference

 

adapter와 listview 합치는 클래스 

public void click_search_button(){
 

    getListView();


}

public void getListView(){


    listview = (ListView)findViewById(R.id.activity_search_listview);

    adapter  = new Activity_Search_ListView_Adapter(this);


    listview.setAdapter(adapter);


}

 

딱 listview.setAdapter(adapter)코드에서 멈춥니다. 

 

 

 

 

adapter클래스

 

public class Activity_Search_ListView_Adapter extends BaseAdapter {


    Context mContext;
    ArrayList<BibleInfo_FromServer>  arry;

    Activity_Search_ListView_Adapter(Context context){
        mContext = context;

        arry = BibleInfo_ArrayList.getBible_ArrayList();


    }

    public int getCount(){
        return arry.size();
    }

    public Object getItem(int position){
        return arry.get(position);
    }

    public long getItemId(int position){
        return position;
    }


    public View getView(final int position, View convertView, ViewGroup parent){

        Log.d("메시지","어뎁터지나는중");
        Activity_Search_ListView_layout itemView;

        if(convertView == null){
            itemView = new Activity_Search_ListView_layout(mContext, arry.get(position));
        }
        else{
            itemView = (Activity_Search_ListView_layout)convertView;


        }
        return itemView;

    }

}

 

리스트뷰에 뿌려줄 view클래스

public class Activity_Search_ListView_layout extends RelativeLayout{
    Activity_Search_ListView_layout(Context context, BibleInfo_FromServer bible){
        super(context);


        LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        inflater.inflate(R.layout.activity_search_listview_contents, this, true);


        icon = (ImageView)findViewById(R.id.layout_activity_search_image);
        icon.setImageBitmap(bible.bitmap);
        text_title = (TextView)findViewById(R.id.layout_activity_search_title);
        text_title.setText(bible.title);
        text_productdesc = (TextView)findViewById(R.id.layout_activity_search_productdesc);
        text_productdesc.setText(bible.productdesc);

    }

 

익명사용자 님이 2016년 10월 17일 질문

3개의 답변

0 추천
리스트뷰 아이디를 다시 한번 해보세요~~!

리스트뷰가 null로 나오네요~~!
ThisPlus (46,920 포인트) 님이 2016년 10월 17일 답변
0 추천
Activity  에 있는 contentView 로 들어가는 xml 레이아웃에 리스트뷰가 있어야되는데 없거나 ..아이디가 틀리거나 ...둘중하나네요
라쎄린드 (25,460 포인트) 님이 2016년 10월 17일 답변
0 추천

getView에서  convertView가 null이 되지 않도록 만들어 주세요.

public View getView(final int position, View convertView, ViewGroup parent){

        if(convertView == null){
            convertView = new ActivitySearchListViewLayout(mContext, arry.get(position));
        }
        else{
           ActivitySearchListViewLayout mView = (ActivitySearchListViewLayout)convertView;
           mView.setData(arry.get(position));
        }
        return convertView;

 }

그리고 Java Naming Convention을 좀 지켜주시킬 부탁드립니다. 

Activity_Search_ListView_layout -> ActivitySearchListViewLayout
text_title -> textTitle
text_productdesc -> textProductDesc
spark (227,830 포인트) 님이 2016년 10월 17일 답변
...