ListView局部刷新

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值