_020_Android_ListView,Adapter,BaseAdapter

本文详细介绍了一种在Android应用中使用自定义适配器来填充ListView的方法。通过实例展示了如何创建PhoneBookAdapter继承BaseAdapter,以及如何在ListViewDemoActivity中设置适配器并响应点击事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

-------------------------- 

 

--------------------------  

 

--------------------------   

 

--------------------------   

 

 -------------------------- 

  •  PhoneBookAdapter extends BaseAdapter
public class PhoneBookAdapter extends BaseAdapter {

    private Context mCtx;
    private LayoutInflater mLI;

   private List<UserInfo> list =new ArrayList<>();

    public PhoneBookAdapter(Context ctx,List<UserInfo> list) {
        this.mCtx = ctx;
        this.list=list;
        this.mLI = (LayoutInflater) mCtx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

    /*有多少条数据*/
    @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;
    }


    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        /*返回一个视图*/
        convertView = mLI.inflate(R.layout.phone_book, null);
        TextView nameTV =convertView.findViewById(R.id.name_text_view);
        TextView ageTV =convertView.findViewById(R.id.ageTV);
        ImageView avatarIV =convertView.findViewById(R.id.avatarIV);

        nameTV.setText(list.get(position).getName());
        ageTV.setText(String.valueOf(list.get(position).getAge()));
        avatarIV.setImageResource(R.drawable.ic_launcher_background);
        return convertView;
    }
}

 ListViewDemoActivity

public class ListViewDemoActivity extends AppCompatActivity {

    private ListView mPhoneBookListView;
    private List<UserInfo> userInfos;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list_view);

        mPhoneBookListView=findViewById(R.id.listView);
        userInfos = new ArrayList<>();

        userInfos.add(new UserInfo("刘备",44));
        userInfos.add(new UserInfo("赵云",44));
        userInfos.add(new UserInfo("关羽",44));
        userInfos.add(new UserInfo("张飞",44));
        userInfos.add(new UserInfo("马超",44));

        PhoneBookAdapter phoneBookAdapter = new PhoneBookAdapter(ListViewDemoActivity.this,userInfos);
        mPhoneBookListView.setOnItemClickListener(new AdapterView.OnItemClickListener(){

            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                Toast.makeText(ListViewDemoActivity.this,userInfos.get(position).getName()+"点击",Toast.LENGTH_SHORT).show();
            }
        });

        mPhoneBookListView.setOnItemLongClickListener(
                new AdapterView.OnItemLongClickListener() {
                    @Override
                    public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
                        Toast.makeText(ListViewDemoActivity.this,userInfos.get(position).getName()+"长按",Toast.LENGTH_SHORT).show();
                        return false;
                    }
                }
        );

        mPhoneBookListView.setAdapter(phoneBookAdapter);
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值