ListView添加头布局事件处理

来源:互联网 发布:权力的游戏分析知乎 编辑:程序博客网 时间:2024/05/22 07:46

效果图


TOP1: ListView适配器;

package com.yd.listdemo;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;import java.util.ArrayList;import java.util.List;/** * Created by YD on 2016/12/18. */public class ListViewAdapter extends BaseAdapter {    private List<String> list = new ArrayList<String>();    private Context mContext;    public ListViewAdapter(Context mContext, List<String> list) {        this.mContext = mContext;        this.list = list;    }    @Override    public int getCount() {        if (list.size() > 0) {            return list.size();        }        return 0;    }    @Override    public Object getItem(int position) {        return list.get(position);    }    @Override    public long getItemId(int position) {        return position;    }    @Override    public View getView(int position, View convertView, ViewGroup parent) {        ViewHolder vh = null;        if (convertView == null) {            vh = new ListViewAdapter.ViewHolder();            convertView = LayoutInflater.from(mContext).inflate(R.layout.content, null);            vh.info = (TextView) convertView.findViewById(R.id.info);            convertView.setTag(vh);        } else {            vh = (ViewHolder) convertView.getTag();        }        vh.info.setText(list.get(position));        return convertView;    }    class ViewHolder {        TextView info;    }}

TOP2: 添加头部和底部布局;

public class MainActivity extends Activity {    ListView lv;    List<String> list = new ArrayList<String>();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        lv = (ListView) findViewById(R.id.myListview);        for (int i = 0; i <= 20; i++) {            list.add(i + "");        }        final ListViewAdapter listAdapter = new ListViewAdapter(this, list);
        //添加头部布局        View viewFoot = getLayoutInflater().from(this).inflate(R.layout.listview_bottom, null);
        //这里需要注意不能直接用findViewById,需要在前面加上你当前头部View.fv****        Button success = (Button) viewFoot.findViewById(R.id.success);        success.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Toast.makeText(MainActivity.this, "底部", Toast.LENGTH_LONG).show();            }        });        //头部        View viewHead = getLayoutInflater().from(this).inflate(listview_head, null);        final ProgressBar pb = (ProgressBar) viewHead.findViewById(R.id.pb);        Button button = (Button) viewHead.findViewById(R.id.button);        button.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Toast.makeText(MainActivity.this, "头部按钮", Toast.LENGTH_LONG).show();                pb.setVisibility(View.GONE);            }        });
        //注意:添加头部和底部布局的时候必须在setAdapter之前;        lv.addHeaderView(viewHead);        lv.addFooterView(viewFoot);        lv.setAdapter(listAdapter);    }


0 0
原创粉丝点击