Android ListView自定义适配器adapter中ConvertView优化及CheckBox处理

本篇博客(实例代码)讲ListView自定义Adapter的用法,重点为使用convertView优化程序,并对使用CheckBox产生的问题予以解决
MyListViewActivity
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;

public class MyListViewActivity extends AppCompatActivity implements View.OnClickListener {
    List<Fruit> fruitList = new ArrayList<>();
    private MyFruitAdapter adapter;
    private Button selectAll;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_mylistview);
        prepareFruits();
        selectAll = findViewById(R.id.btn_selectAll);
        selectAll.setOnClickListener(this);
        Button deleteSelected = findViewById(R.id.btn_deleteSelected);
        deleteSelected.setOnClickListener(this);

        adapter = new MyFruitAdapter(MyListViewActivity.this, R.layout.myfruititem, fruitList);
        ListView listView = this.findViewById(R.id.lv_fruits);
        listView.setAdapter(adapter);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Toast.makeText(MyListViewActivity.this, adapter.getItem(position).getName(), Toast.LENGTH_LONG).show();
            }
        });
    }

    public void onClick(View view) {
        int id = view.getId();
        switch (id) {
            case R.id.btn_selectAll:
                Button btn = (Button) view;
                if (btn.getText().equals("SelectAll")) {
                    btn.setText("SelectNone");
                    adapter.selectAll();
                } else {
                    btn.setText("SelectAll");
                    adapter.selectNone();
                }
                break;
            case R.id.btn_deleteSelected:
                adapter.deleteSelected();
                break;
            default:
                break;
        }
    }

    public void prepareFruits() {
        for (int i = 0; i < 20; i++) {
            fruitList.add(new Fruit("Apple" + String.valueOf(i), R.drawable.apple_pic));
            fruitList.add(new Fruit("Banana" + String.valueOf(i), R.drawable.banana_pic));
            fruitList.add(new Fruit("Orange" + String.valueOf(i), R.drawable.orange_pic));
            fruitList.
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值