檔案重新命名之動態修改ListView裡指定Item中的組件屬性,listviewitem
在Android實際開發過程中經常會遇到,修改ListView中某一項的值。如何達到這一目的呢?
方法主要有兩種:
第一種方式:當ListView中某一項的值發生變化之後,重新載入資料已達到更新ListView的目的。
雖然第一種方式能夠解決問題,但不值得推薦。因為這樣會帶來不必要的資源消耗。在移動終端這種硬體資源和計算能力都有限的情況下,顯然有點得不償失了,況且使用者的體驗也不好。
第二種方式:第二種方式可以說是第一種方式的改進。ListView中某一項的值發生改變,實際上是ListView的資料來源發生了改變。既然資料來源發生了改變那麼我們就修改資料來源。
下面就拿修改ListView中某一項檔案名稱來示範具體步驟:
步驟一:擷取單擊ListView中tem的位置
//註冊單擊ListView中的Item響應的事件list.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub currentPosition= position; //擷取單擊ListView 中tem的位置 } });
步驟二:根據單擊ListView中tem的位置更新ListView的資料來源,並通知適配器資料改變
String newFileName=edtFileName.getText().toString().trim(); file.renameTo(new File(file.getParent(),newFileName));//重新命名//更新ListViewMap<String, Object>map=listItems.get(currentPosition);map.put("fileName", newFileName);//將新的檔案名稱添加到Map以替換舊檔案名稱listItems.set(currentPosition, map);//替換listItems中原來的mapadapter.notifyDataSetChanged();//通知SimpleAdapter資料改變
怎動態更改ListView中Item的資料?
listview 是項目中非常常用的控制項。 還是下功夫研究研究。 答案已經有了, 為何要源碼?做程式員這行就要腦子轉的快。拿來主義不支援。
Android 中Listview 擷取每個item的id,並動態更改item上面的顯示
在載入資料和更新資料時調用以下代碼:
// 產生適配器的Item和動態數組對應的元素
SimpleAdapter listItemAdapter = new SimpleAdapter(this, listItem,// 資料來源
R.layout.listview_orderitems,// ListItem的XML實現
// 動態數組與ImageItem對應的子項
new String[] { "ordercode", "username","userphone" },
// ImageItem的XML檔案裡面的一個ImageView,兩個TextView ID
new int[] { R.id.ItemTitle, R.id.ItemText ,R.id.ItemText1});
listItemAdapter.notifyDataSetChanged();//這句就是及時重新整理列表的
// 添加並且顯示
list.setAdapter(listItemAdapter);