您的位置:首页 > 移动开发 > Android开发

ArrayAdapter在ListView的详解实现

2017-06-07 11:13 260 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息