您的位置:首页 > 移动开发 > Android开发

AndroidのActivity之Listview数据项更改

2012-08-31 17:39 344 查看
先看效果,点击更改,换掉头像。





想过两个办法一个是直接把Listview里ItemView里的ImageView接出来,赋值给成员变量,然后在单机事件中,改变它。

public class MainActivity extends Activity {
/** Called when the activity is first created. */
ListView lv;
ImageView iv;

.......
class BindAdapter extends BaseAdapter{
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
// TODO Auto-generated method stub

//bindView
if(arg1==null){
holder = new ViewHolder();
arg1 = inflater.inflate(R.layout.item, null);
holder.bt = (Button)arg1.findViewById(R.id.bt);
holder.tv = (TextView)arg1.findViewById(R.id.tv);
holder.iv = (ImageView)arg1.findViewById(R.id.iv);

arg1.setTag(holder);
}else{
holder = (ViewHolder)arg1.getTag();
}

//bindData
holder.bt.setOnClickListener(new Lsn(arg0,holder.iv));
Map<String,Object> map = new HashMap<String,Object>();
map = list.get(arg0);

holder.tv.setText((String)map.get("tv"));//绑定map中tv元素
holder.iv.setImageResource((Integer)map.get("iv"));//绑定map中iv元素
MainActivity.this.iv = iv;
return arg1;
}
class Lsn implements View.OnClickListener{
@Override
public void onClick(View v) {
this.iv.setImageResource(R.drawable.me);
}

}


最终没看到效果,貌似不行。

第二种就是根据MVC模式,通过Controler去改变View,而Adapter正是充当着这个角色。首先,先更改数据源List<? extends Map>,然后再用适配器Adapter去刷新视图。我觉得在android上应该叫DVA,Data-View-Adapter,即数据源-视图-适配器,适配器通过一定的规则把数据安排在视图上。

<下次补上>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: