package my.GaGyeBoo;

import java.util.ArrayList;
import android.app.Activity;
import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.TextView;

public class GaGyeBoo extends  ListActivity  {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

     ArrayList<Data> m_orders = new ArrayList<Data>();
        
        Data temp = new Data();
     temp.setData("20102020", "20000", "sdfasdf", "수입");
     m_orders.add(temp);
                
   DataAdapter     m_adapter = new DataAdapter(this, R.layout.row, m_orders);
      
        setListAdapter(m_adapter);
  }
                
    private class DataAdapter extends ArrayAdapter<Data>{
     private ArrayList<Data> items;
     
     public DataAdapter(Context context, int textViewResourceId, ArrayList<Data> items){
      super(context, textViewResourceId, items);
      this.items = items;
     }
     @Override
     public View getView(int position, View convertView, ViewGroup parent){
      View v = convertView;
      if(v==null){
       LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
       v = vi.inflate(R.layout.row, null);
      }
   
      Data d = items.get(position);
      if(d != null){
       TextView tt = (TextView) v.findViewById(R.id.TopView);
       TextView bt = (TextView) v.findViewById(R.id.BottomView);
       if(tt != null){
        tt.setText("날짜 " + d.getDate()+ "  금액 " + d.getMoney());
       }
       if(bt != null){
        bt.setText("내용 " + d.getContent() + "항목" + d.getCategory());
       }
       
       if(d.getCategory().equals("수입")){
        tt.setBackgroundColor(0xFF500000);
        bt.setBackgroundColor(0xFF500000);
       }
       else{
        tt.setBackgroundColor(0xFF000050);
        bt.setBackgroundColor(0xFF000050);
       }
      }
      return v;
     }
    }
}

소스는 다음과 같이 되있고, 기본적으로 커니님의 강좌를 보고 따라한 것입니다.

Data라는 클래스는 만들어져 있구요.

그런데 문제는 ListActivity를 extends를 하여 실행을 하면 예상치 않게 중지되었다며 실행이 안됩니다.

웃기게도 setListAdapter부분을 주석처리하고 Activity를 extends하여 실행하면 실행이 됩니다.

물론 리스트에 내용이 채워지진 않습니다.

겉 형태만 나타나지요.

왜 이럴까요?

제 눈으로는 아무리 봐도 문제 될 만한 부분이 없는데요.

참고로 커니님의 예제를 그대로 가져다가 실행해보면 잘됩니다.