ArrayAdapter在ListView的详解实现

xiaoxiao2021-02-28  77

adapter在安卓中分为ArrayAdapter和baseAdapter;其中简单的ArrayAdapter主要用于简单的文本字符串的实现,,如ListView,SpinnerView

记录一下ListView的具体实现

首先是我们必须清楚实现的步骤:

1、创建我们所需要的承载视图:Listview

2、创建数据源List

3、创建适配器并绑定数据源adapter

3、将适配器绑定在视图承载容器上

4、为ListView 设置点击事件

具体代码如下:

package com.example.shanshui.arraylisttest; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; import java.util.ArrayList; /* * 适配器采用MVC模式:所谓的MVC,就是M:model;V:View; C:Controller * MVC模式的使用实现了数据与前端的分离,数据源与试图互不干扰 * * */ /*创建视图适配器的一般步骤: 1、创建承载数据的视图容器 2、创建数据源 3、创建适配器并把数据绑定在适配器 4、将适配器绑定在视图容器 * */ public class MainActivity extends AppCompatActivity { private ListView mlv; private ArrayList<String> list; private ArrayAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mlv = (ListView) findViewById(R.id.mlv); //构造数据源 list = new ArrayList<>(); for (int i = 0; i < 50; i++) { list.add("数据源" + i); } //为适配器添加数据源 adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, list); //为listView的容器添加适配器 mlv.setAdapter(adapter); //设置点击事件mlv mlv.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Toast.makeText(MainActivity.this, "你点击的是" + position, Toast.LENGTH_SHORT).show(); } }); //实现长按监听 mlv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { @Override /* * 点击事件的参数 * 1、parent指定的是适配器AdqpterView绑定的视图容器,也就是Listview; * 2、View:Item的适配器对象的view * 3、position:Item在数据数组的对应下标所以 * id:Item所在的行号 * */ public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { list.remove(position); //监听数据源的改变 adapter.notifyDataSetChanged(); return true; } }); } }

/* * 适配器采用MVC模式:所谓的MVC,就是M:model;V:View; C:Controller * MVC模式的使用实现了数据与前端的分离,数据源与试图互不干扰 * * */ /*创建视图适配器的一般步骤: 1、创建承载数据的视图容器 2、创建数据源 3、创建适配器并把数据绑定在适配器 4、将适配器绑定在视图容器 * */

点击事件的参数

/* * 点击事件的参数 * 1、parent指定的是适配器AdqpterView绑定的视图容器,也就是Listview; * 2、View:Item的适配器对象的view * 3、position:Item在数据数组的对应下标所以 * id:Item所在的行号 * */

长按事件中我们设置长按删除当前Item

之后需要对数据刷新显示:使用过NotifyDataSetChanged

转载请注明原文地址: https://www.6miu.com/read-37112.html

最新回复(0)