ListView局部刷新

来源:互联网 发布:数组对象方法排序 编辑:程序博客网 时间:2024/06/07 00:28

listview局部刷新

这里写图片描述
上面这个方式是用来获取需要修改的View

这里写图片描述

在通过点击item时的OnItemChickListener 来刷新listview的某一条

其余代码

package com.taisheng.fh.myapplication.ten_seven;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.Gravity;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.ListView;import android.widget.RelativeLayout;import android.widget.TextView;import com.taisheng.fh.myapplication.R;import java.util.ArrayList;import java.util.List;public class Ten_Sevent_Activity extends AppCompatActivity {    private ListView listView ;    private List<MyListItemBean> lists ;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_ten__sevent_);        initData();        listView = (ListView) findViewById(R.id.listview);        final MyListAdapter adapter = new MyListAdapter(lists);        listView.setAdapter(adapter);        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                MyListItemBean listItemBean =                        (MyListItemBean)parent.getItemAtPosition(position);//获得点击数据源                listItemBean.setName("updata name");//更改点击数据源                adapter .updataName(listItemBean,position);// 把参数出入方法进行局部改变            }        });    }    private void initData(){        lists = new ArrayList<>();        for (int i = 0; i < 20; i++) {            lists.add(new MyListItemBean("name"+i,""+i));        }    }    class MyListAdapter extends BaseAdapter{        private List<MyListItemBean> list;        public MyListAdapter(List<MyListItemBean> list) {            this.list = list;        }        @Override        public int getCount() {            return list.size();        }        @Override        public Object getItem(int position) {            return list.get(position);        }        @Override        public long getItemId(int position) {            return position;        }        public void updataName(MyListItemBean myListItemBean ,int position){            int visiblePosition = listView.getFirstVisiblePosition();            // 如添加headerview后 firstview就是hearderview            // 所有索引+1 取第一个view            // View view = listview.getChildAt(index - visiblePosition + 1);            // 获取点击的view            View views = listView.getChildAt(position - visiblePosition);            TextView v_text = (TextView) views.findViewById(R.id.item_text);            v_text.setText(myListItemBean.getName());        }        @Override        public View getView(int position, View convertView, ViewGroup parent) {            viewHolder holder = null;            if (convertView==null) {                convertView = LayoutInflater.from(Ten_Sevent_Activity.this).inflate(R.layout.ten_seven_list_item_layout, null);                holder = new viewHolder();                holder.textView = (TextView)convertView.findViewById(R.id.item_text);                convertView.setTag(holder);            }else {                holder = (viewHolder) convertView.getTag();            }            MyListItemBean itemBean = list.get(position);            holder.textView.setText(itemBean.getName());            return  convertView ;        }        class viewHolder{            TextView textView ;        }    }    class MyListItemBean{        private String name ;        private String position;        public MyListItemBean(String name, String position) {            this.name = name;            this.position = position;        }        public String getName() {            return name;        }        public void setName(String name) {            this.name = name;        }        public String getPosition() {            return position;        }        public void setPosition(String position) {            this.position = position;        }    }}
1 0