一个listView的例子代码

原创 2015年11月20日 16:58:37

MainActivity

package com.example.administrator.myapplication;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ListView;
import java.util.ArrayList;
import java.util.List;
/**
 * Created by Administrator on 2015/8/25.
 */
public class ListFruitActivity extends Activity {
    private ListView mListView;
    private List<Fruit> mFruits;
    private FruitAdapter mAdapter;
    private LayoutInflater mInflater;
    private Button mBtnCheckedFan;
    private View mHeaderView;
    private Button mBtnCheckedAll;
    private View mFootView;
    private View mViewTou;
    @Override

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list);//放相当于书架作用的ListView布局
        mListView = (ListView) findViewById(R.id.listview);
        mInflater = getLayoutInflater();
        initData();
        mBtnCheckedAll= (Button) findViewById(R.id.button_all_checked);
        mBtnCheckedFan= (Button) findViewById(R.id.button_fan);
        mBtnCheckedAll.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mAdapter.checkedAll();
            }
        });
        mBtnCheckedFan.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mAdapter.checkedFan();
            }
        });
        mAdapter = new FruitAdapter(mInflater, mFruits);
        mListView.setAdapter(mAdapter);
        mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                mAdapter.itemSelect(position);
            }
        });
    }
    private void initData() {
        mFruits = new ArrayList<>();
        for (int i = 0; i <10; i++) {
            Fruit apple = new Fruit("苹果", R.mipmap.apple);
            Fruit caomei = new Fruit("草莓", R.mipmap.caomei);
            Fruit lizhi = new Fruit("荔枝", R.mipmap.lizhi);
            Fruit cherry = new Fruit("樱桃", R.mipmap.cherry);
            mFruits.add(apple);
            mFruits.add(caomei);
            mFruits.add(lizhi);
            mFruits.add(cherry);
        }

    }
}

adapter

package com.example.administrator.myapplication;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.ImageView;
import android.widget.TextView;

import java.util.List;

/**
 * Created by Administrator on 2015/8/25.
 */
public class FruitAdapter extends BaseAdapter {
    private List<Fruit> mFruits;
    private LayoutInflater mInflater;
    private boolean [] mManagerAllCheckBox;
    public FruitAdapter(LayoutInflater inflater, List<Fruit> date) {
        //将inflater
        mInflater = inflater;
        mFruits = date;
        mManagerAllCheckBox=new boolean[mFruits.size()];
    }
    public void checkedFan(){
        for (int i=0;i<mManagerAllCheckBox.length;i++){
            mManagerAllCheckBox[i]=!mManagerAllCheckBox[i];

        }
        notifyDataSetChanged();
    }
    public void checkedAll(){
        for (int i=0;i<mManagerAllCheckBox.length;i++){
            mManagerAllCheckBox[i]=true;
        }
        notifyDataSetChanged();
    }
    public void itemSelect(int position){
        mManagerAllCheckBox[position]=!mManagerAllCheckBox[position];//点空白地方也能选中checkBox
        notifyDataSetChanged();//刷新
    }
    @Override
    public int getCount() {
        //得到listaview将要显示的数据条数
        return mFruits.size();
    }

    @Override
    public Object getItem(int position) {
        //返回索引
        return position;
    }

    @Override
    public long getItemId(int position) {
        //返回索引
        return position;
    }

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        Fruit fruit = mFruits.get(position);
        ViewHolder vh = null;//局部变量赋初值
        if (convertView == null) {//convertView是滑出屏幕的view
            vh = new ViewHolder();
            convertView = mInflater.inflate(R.layout.activity_item_fruit, null);//这里放相当于书的布局
            vh.checbox_xuanze = (CheckBox) convertView.findViewById(R.id.checbox_xuanze);
            vh.imageView = (ImageView) convertView.findViewById(R.id.image);
            vh.textView_name = (TextView) convertView.findViewById(R.id.textView_name);
            convertView.setTag(vh);
        } else {
            vh = (ViewHolder) convertView.getTag();
        }
        vh.textView_name.setText(fruit.getName());
        vh.imageView.setImageResource(fruit.getImg());
        vh.checbox_xuanze.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                mManagerAllCheckBox[position]=isChecked;
                notifyDataSetChanged();
            }
        });
        vh.checbox_xuanze.setChecked(mManagerAllCheckBox[position]);
        return convertView;
    }
    class ViewHolder {
        TextView textView_name;
        CheckBox checbox_xuanze;
        ImageView imageView;
    }
}

item信息类

public class Fruit {
    private String name;
    private int img;
    public Fruit(String name,int img){
        this.name=name;
        this.img=img;
    }
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getImg() {
        return img;
    }

    public void setImg(int img) {
        this.img = img;
    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

网上摘的一个ListView异步更新图片的例子

先把xml上上... main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ...

一个ListView根据标识加载不同布局,很简单的例子,就是聊天界面,你说话在右边好友在左边怎么实现呢.

我不是一个标题党,我也是自己遇到了这个问题,想给后面的人一个快速解决的方法:1.我最开始的方法是通过将两个布局写在一个布局文件里, 通过显示和隐藏控件,来实现这样的效果,这样看起来重用的控件利用率高了...

一个支持ListView的底部弹出控件 PopupWindow 小例子

导语: 一个支持ListView的底部弹出控件 PopupWindow 小例子 ,底部弹出控件

android初步学习时所有简单例子整合到一个ListView上

刚刚开始学习android的时候,每一个小的例子都需要新建一个新的工程,后面工程多了,感觉手机上面的软件安装也多了。寻找起来有时候感觉也不方便。 所以想通过一个listview,把所有的例子都显示在里...

IOS一个滚动视图的小例子(代码)

程序的大部分 @interface BIDViewController : UIViewControllerUIScrollViewDelegate> //可滚动页面 @proper...

Java8--传递代码:一个例子

来看一个例子,看看它是如何帮助你写程序的。 java8源代码可以访问[https://github.com/java8/](https://github.com/java8/)假设你有一个Apple类...

【ASP】ASP vbscript一个综合的例子,操作html文件添加、删除代码、删除文件。

后台管理 添加文章 文章标题: 文章内容: 删除文章 文章编号: 文章标题: 创建日期: <% Dim fso,htmlwrite,countwrite...

Java代码规范--排版,命名---以及一个例子

一 排版规范 1:对于变量的初始化赋值时候,= 要对齐,这样看着整齐舒服 // Before private Char joe = 'joe'; private Char johnny = '...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)