各位前輩們好
小弟又來問問題了
這次是有關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<HashMap<String,Object>> listItems = new ArrayList<HashMap<String,Object>>();
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<String,Object> map = new HashMap<String,Object>();
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);
}
}
因為我的程式底子還很淺,所以可能會有謬誤的地方,還請不吝指正 謝謝