zoukankan      html  css  js  c++  java
  • AndroidのActivity之Listview数据项更改

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

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

     <下次补上>

  • 相关阅读:
    1.两数之和 力扣,水题
    525.连续数组 力扣 (前缀和)
    [LeetCode]56. Group Anagrams变位词分组
    界面布局注意(一)
    docker常用命令
    docker常用批量操作命令
    Golang package之math/rand
    (三)虚拟机与Linux新尝试——20155306白皎
    洛谷 P1383 codevs 3333 高级打字机
    BZOJ 1013 cogs 1845 [JSOI2008]球形空间产生器sphere
  • 原文地址:https://www.cnblogs.com/bvin/p/2665763.html
Copyright © 2011-2022 走看看