ArrayAdapter를 상속받아 텍스트와 엑스버튼이 나오는 리스트adapter를 만들면 어댑터 연결까지는 문제가 없는 것 같은데 로그를 찍어보니
자꾸 getView()를 두 번씩 호출하네요. 뭐가 문제일까요?

public void fillData()
    {
  if(layoutMode == START_SPAM_LAYOUT || layoutMode == SPAM_NUMBER_LAYOUT)
  { 
   Log.d("fillData", "0");
   SpamListAdapter slaNumber = new SpamListAdapter(this, R.layout.spamlist, mNumberlist);
   mList.setAdapter(slaNumber);

  }else
  {
   Log.d("fillData", "1");
   SpamListAdapter slaString = new SpamListAdapter(this, R.layout.spamlist, mStringlist);
   mList.setAdapter(slaString);
  }   
    }

여기까지는 정상적으로 동작하는 것같은데요.

public class SpamListAdapter extends ArrayAdapter{
 
 final static String TAG = "SpamListAdapter";
 
 SpamDialog spamNumber = null;
 ArrayList<String> arrNumberList = null;
  
 public SpamListAdapter(SpamDialog spamNumber, int spamlist, ArrayList arrNumberList) {
  super(spamNumber, spamlist, arrNumberList);
  Log.d(TAG, "SpamListAdapter()" );
  this.spamNumber = spamNumber;
  this.arrNumberList = arrNumberList;
  Log.d(TAG, "spamNumber :" +spamNumber);
  Log.d(TAG, "arrNumberList :"+arrNumberList );
 }
 
 @Override
 public View getView(int position, View convertView, ViewGroup parent) {
  
  View v = convertView;
  
  if(v==null){
   LayoutInflater vi = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
   v = vi.inflate(R.layout.spamlist, null);   
  }
  
  String numberList = arrNumberList.get(position);
  Log.d(TAG, "getView() : "+numberList);
  Log.d(TAG, "getView() : "+arrNumberList.size());
  if(numberList != null && !"".equals(numberList)){
   
   LinearLayout listRow1 = (LinearLayout)v.findViewById(R.id.listRow1);
   LinearLayout listRow2 = (LinearLayout)v.findViewById(R.id.listRow2);
   
   TextView spamNumber = new TextView(getContext());
   ImageView xButton = new ImageView(getContext());
   
   spamNumber.setWidth(200);
   
   xButton.setImageResource(R.drawable.btn_spam_dialog_x_button);
   xButton.setId(position);
   setListOnTouchListener(xButton);
   
   spamNumber.setText(numberList);
   spamNumber.setTextSize(20);
   spamNumber.setTextColor(0xffffffff);
   
   listRow1.addView(spamNumber);
   listRow2.addView(xButton);
   
  }  
  return v;
 }
 
 
 private void setListOnTouchListener(View v)
 {  
  v.setOnTouchListener(new OnTouchListener()
  {   
   @Override
   public boolean onTouch(View v, MotionEvent event)
   {
    int action = event.getAction();
    int id = v.getId();
    
    if(action == MotionEvent.ACTION_DOWN){
     remove(id);
     arrNumberList.remove(id);
    }
    return false;
   }
  });
 }
}

이 어댑터 부분이 문제인것 같은데. 고수님들 알려주세요 ㅠ..ㅠ