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

listview getview호출이 너무 많이 되는데 왜그런거죠?

0 추천

안녕하세요 다름이 아니라 listview에 값이 1개인데 getview가 3번 호출되는건 왜그런거죠 ㅜㅜ

분명히 값넣는거는 1개고 그런데 ㅜㅜ

 

 

Main.class

ui_list_call = (ListView)findViewById(R.id.list_call);

mAdapter = new CallAdapter(getApplicationContext(),this,callList,onCallClickListener,mHandler);
ui_list_call.setAdapter(mAdapter);


callList.clear();
Call call = new Call();
callList.add(call);
mAdapter.reFresh(callList);

 

CallAdapter.class

public class CallAdapter extends BaseAdapter {
    private ArrayList<Call> callList = new ArrayList<Call>();
    private Context context;
    private MainActivity mActivity;
    private LayoutInflater inflater;
    private OnClickListener onCallClickListener;
    private Handler mHandler;

    public CallAdapter(Context context,MainActivity mActivity,ArrayList<Call> callList, OnClickListener onCallClickListener,Handler handler){
        this.callList = callList;
        this.inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        this.context = context;
        this.onCallClickListener = onCallClickListener;
        this.mActivity = mActivity;
        this.mHandler = handler;

    }

    public void reFresh(ArrayList<Call> callList){
        Log.e("kim","reFresh");

        this.callList = callList;
        this.notifyDataSetChanged();
    }

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

        if(convertView == null) {
            convertView = inflater.inflate(R.layout.item_call, parent, false);
        }
흠바바 (640 포인트) 님이 2015년 7월 20일 질문

1개의 답변

0 추천
일단 봤을 때 기본적으로 2번은 호출하네요

 

setAdapter 때 1번 , refresh 하니 2번

data 를 완성 하고 나서 setAdapter 하세요 이후 data 가 변경될 때만 refresh
aucd29 (218,390 포인트) 님이 2015년 7월 20일 답변
...