AndroidのActivity之Listview数据项更改

来源:互联网 发布:网上淘宝贷款是真的吗 编辑:程序博客网 时间:2024/06/05 13:34

先看效果,点击更改,换掉头像。

 

想过两个办法一个是直接把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,即数据源-视图-适配器,适配器通过一定的规则把数据安排在视图上。

 <下次补上>

 

原创粉丝点击