list的SimpleCursorAdapter是否可與自定義listItem方法並用呢?

各位前輩們好

小弟又來問問題了

 

這次是有關listview的部分

這次想寫的東西有部分需要用到list來表示

可以同時兼顧到條列與按鈕

所以針對list找了不少文章看

在list上來說,目前已經完成了SimpleCursorAdapter的用法,用來表現出自己寫的電話簿、通訊記錄等

只是目前仍只停留在使用SDK內定好的android.R.layout.simple_expandable_list_item_2之類的listitem

沒辦法成功自己設定一個我想要的listitem外觀來呈現我要的東西

暫時還沒在網路上找到SimpleCursorAdapter + 自定義listItem的做法解說來參考

(因為打開SDK內的xml來看,找到的大多是一行文字、兩行文字,我的需求是三行文字以上,甚至加上圖,而且需要部分修改(如日期、類型等),所以需要自己定義)

自己的嘗試又總是失敗,找不出問題在哪裡

下面附上我的程式碼

請各位前輩幫忙看看是不是哪邊有問題,或是指點一下哪裡該注意,謝謝 

public class Test13 extends Activity {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
         ListView list = (ListView)findViewById(R.id.ListView01);
         
         ArrayList> listItems = new ArrayList>();
         Cursor c = this.getContentResolver().query(CallLog.Calls.CONTENT_URI, null, null,null,null);
        c.moveToFirst();
        do{ 
         int name_index = c.getColumnIndex(CallLog.Calls.CACHED_NAME);
         int number_index = c.getColumnIndex(CallLog.Calls.NUMBER);
         int date_index = c.getColumnIndex(CallLog.Calls.DATE);
         HashMap map = new HashMap();
         map.put("log_name", c.getString(name_index));
         map.put("log_number", c.getString(number_index));
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");
         String time="";
         Date date;
         date = new Date(Long.parseLong(c.getString(date_index)));
  time = sdf.format(date);
         map.put("log_date", time);
         listItems.add(map);
         }while(c.moveToNext());
         SimpleAdapter listItemAdapter = new SimpleAdapter(this,listItems,
         R.layout.list_items,
         new String[]{"log_name","log_number","lg_date"},
         new int[]{R.id.text_name,R.id.text_number,R.id.text_time});
        list.setAdapter(listItemAdapter);
    }
}
因為我的程式底子還很淺,所以可能會有謬誤的地方,還請不吝指正 謝謝