Android動態修改ListView中指定Item的元件屬性

CSDN部落格發表於2014-08-17

在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));//重新命名
//更新ListView
Map<String, Object>map=listItems.get(currentPosition);
map.put(“fileName”, newFileName);//將新的檔名新增到Map以替換舊檔名
listItems.set(currentPosition, map);//替換listItems中原來的map
adapter.notifyDataSetChanged();//通知SimpleAdapter資料改變

相關文章