在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

Mapmap=listItems.get(currentPosition);

map.put(“fileName”, newFileName);//将新的文件名添加到Map以替换旧文件名

listItems.set(currentPosition, map);//替换listItems中原来的map

adapter.notifyDataSetChanged();//通知SimpleAdapter数据改变

关注微信号:javalearns   随时随地学Java

或扫一扫

0818b9ca8b590ca3270a3433284dd417.png

随时随地学Java

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐