ListAdapter列表适配器
ListAdapter列表适配器其实是继承了BaseAdapter
示例图:

MainActivity
package com.shaoxin.mylistadapter; import android.app.ListActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import static com.shaoxin.mylistadapter.R.drawable.b;
import static com.shaoxin.mylistadapter.R.drawable.c; public class MainActivity extends ListActivity {
private List<Map> list;
private String[] strPerson = {"妹子", "美女", "美美", "大美女"};
private int[] iDrawble = {R.drawable.a, b, c, R.drawable.d};
MyAdapter myAdapter;
private float fFirstx;
private float fSecx; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
TextView textView = (TextView) view.findViewById(R.id.txt);
Log.v("msg", textView.getText().toString());
}
});
list = new ArrayList<>();
for (int i = 0; i < strPerson.length; i++) {
Map map = new HashMap();
map.put("person", strPerson[i]);
map.put("id", iDrawble[i]);
list.add(map);
}
myAdapter = new MyAdapter();
setListAdapter(myAdapter);
} public class MyAdapter extends BaseAdapter { @Override
public int getCount() {
return list.size();
} @Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHold viewHold = new ViewHold();
if (convertView == null) {
convertView = View.inflate(MainActivity.this, R.layout.listview_item, null);
viewHold.strName = (TextView) convertView.findViewById(R.id.txt);
viewHold.iDrawable = (ImageView) convertView.findViewById(R.id.img);
viewHold.button = (Button) convertView.findViewById(R.id.btn_del);
convertView.setTag(viewHold);
} else {
viewHold = (ViewHold) convertView.getTag();
}
viewHold.iDrawable.setImageResource((Integer) list.get(position).get("id"));
viewHold.strName.setText(list.get(position).get("person").toString());
viewHold.button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
list.remove(position);
myAdapter.notifyDataSetChanged();
}
});
convertView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_UP:
fSecx = event.getX();
if ((fSecx - fFirstx) > 10) {
ViewHold viewHold = (ViewHold) v.getTag();
viewHold.button.setVisibility(Button.VISIBLE);
viewHold.button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
list.remove(position);
myAdapter.notifyDataSetChanged();
}
});
}
break;
case MotionEvent.ACTION_DOWN:
fFirstx = event.getX();
break;
case MotionEvent.ACTION_MOVE:
break;
}
return true;
}
});
return convertView;
} class ViewHold {
private TextView strName;
private ImageView iDrawable;
private Button button;
} @Override
public Object getItem(int position) {
return null;
} @Override
public long getItemId(int position) {
return 0;
}
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.shaoxin.mylistadapter.MainActivity"> <ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
listview_item.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"> <ImageView
android:id="@+id/img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:maxHeight="100dp"
android:maxWidth="100dp"
android:src="@mipmap/ic_launcher" /> <TextView
android:id="@+id/txt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/img"
android:layout_toEndOf="@+id/img"
android:layout_toRightOf="@+id/img"
android:text="hello world" /> <Button
android:id="@+id/btn_del"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="删除"
android:layout_alignBaseline="@+id/txt"
android:visibility="gone"
android:layout_alignBottom="@+id/txt"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
</RelativeLayout>
ListAdapter列表适配器的更多相关文章
- Android应用--简、美音乐播放器获取专辑图片(自定义列表适配器)
Android应用--简.美音乐播放器获取专辑图片(自定义列表适配器) 2013年7月3日简.美音乐播放器开发 第二阶段已增加功能: 1.歌词滚动显示 2.来电监听 3.音量控制 4.左右滑动切换歌词 ...
- <Android>列表、网格、画廊视图及适配器的绑定
列表视图和适配器的绑定 列表视图既可以使用ListView组件,也可以继承ListActivity.显示可以是ArrayAdapter,也可以是游标SimpleCursorAdapter,还可以是继承 ...
- Android列表类视图之基本适配器BaseAdapter
说到列表视图,不难联想到前面提到过的数组适配器,但是数组适配器只能搭建文本选择项,扩展能力并不强,Android提供了一种适应性更强的基本适配器BaseAdapter,该适配器允许开发者在别的代码中进 ...
- android打造万能的适配器(转)
荒废了两天,今天与大家分享一个ListView的适配器 前段时间在学习慕课网的视频,觉得这种实现方式较好,便记录了下来,最近的项目中也使用了多次,节省了大量的代码,特此拿来与大家分享一下. 还是先看图 ...
- android listview 三种适配器设置
1: public class ArrayAdapterActivity extends ListActivity { @Override public void onCreate(Bundle sa ...
- Android SwipeActionAdapter结合Pinnedheaderlistview实现复杂列表的左右滑动操作
在上一篇博客<Android 使用SwipeActionAdapter开源库实现简单列表的左右滑动操作>里,已经介绍了利用SwipeActionAdapter来左右滑动操作列表: 然,有时 ...
- Android使用Mono c#分段列表视图
下载source code - 21.7 KB 你想知道如何把多个ListView控件放到一个布局中,但是让它们在显示时表现正确吗 多个列表项?你对它们正确滚动有问题吗?这个例子将向你展示如何组合单独 ...
- Android 自定义列表指示器
在联系人界面 可以看到这种界面 手指快速滑动右边滑动条时 可以显示相应的字母图标 android里提供了android.widget.SectionIndexer这个接口去实现该效果 可是只能显示字母 ...
- 一起学android之怎样获取手机程序列表以及程序相关信息并启动指定程序 (26)
效果图: 程序列表: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGFpX3FpbmdfeHVfa29uZw==/font/5a6L5L2T/fonts ...
随机推荐
- iOS中如何监测来电
http://blog.csdn.net/liujinlongxa/article/details/44207587
- Excel—SUMPRODUCT用法指南
1.最简单的SUMPRODUCT函数等同与SUM函数. 2.SUMPRODUCT可以设置多参数,其输出值为各参数对应值的乘积之和. E2=6*7+8*6+2*8+9*8+3*8+5*9 3.SUMPR ...
- mvc添加多条数据到数据库
from : http://www.th7.cn/Program/net/201502/387849.shtml mvc的视图太强大了,个人刚刚接触.(初级菜鸟,懂的不多,往大神们指点)需求是,客户点 ...
- kali安装vmtools问题
切记使用此法,一定要确保kali没有装过vmware workstation自带的vmware_tools,不然要卸载之后才能使用.我当初就是安装了后使用此法,不能成功,卸载也不行,导致完全重装 安装 ...
- runtime理论知识
http://southpeak.github.io/2014/10/25/objective-c-runtime-1/ 转载http://www.jianshu.com/p/6b905584f536 ...
- linux 安装maven
set maven environment M2_HOME=/tool/apache-maven-3.3.9export M2_HOME PATH=$PATH:$M2_HOME/bin expor ...
- 【新手出发】从搭虚拟机开始,一步一步在CentOS上跑起来.Net Core程序
文章背景 微软6月26号发布core 1.0版本后,园子里关于这方面的文章就更加火爆了,不管是从文章数量还是大家互动的热情来看,绝对是最热门的技术NO.1.我从去年底开始接触.net core到现在也 ...
- BUG-FREE-For Dream
一直直到bug-free.不能错任何一点. 思路不清晰:刷两天. 做错了,刷一天. 直到bug-free.高亮,标红. 185,OA(YAMAXUN)--- (1) findFirstDuplicat ...
- Fiddler学习笔记
1. [HTTP]Fiddler(一) - Fiddler简介 Fiddler使用代理(127.0.0.1:8888), 打开Fiddler会自动设置该代理. 2.[HTTP]Fiddler(二) - ...
- xpath 总结
例如 <table id="MatchTable"> <tr id="Explain_1228761" style="display ...