011自定义适配器 Adapter
2015-11-29 23:25
274 查看
常用适配器有:
ArrayAdapter数组适配器
BaseAdapter数据库适配器
CursorAdapter查询数据库适配器
ListAdapter列表适配器
ResourCursorAdapter
SimpleAdapter简单适配器
SpinnerAdapter
AdapterView extends ViewGroup
常用方法:
getCount() 获取items数量
getItem(int position)获取某一个item的位置
getItemViewType(int position)给不同数据设置不同View并显示出来
getView(int position,View converView,ViewGroup parent)在指定的位置显示View
方法一:
xml:
java代码:
main2.xml
MainActivity.java
ArrayAdapter数组适配器
BaseAdapter数据库适配器
CursorAdapter查询数据库适配器
ListAdapter列表适配器
ResourCursorAdapter
SimpleAdapter简单适配器
SpinnerAdapter
AdapterView extends ViewGroup
常用方法:
getCount() 获取items数量
getItem(int position)获取某一个item的位置
getItemViewType(int position)给不同数据设置不同View并显示出来
getView(int position,View converView,ViewGroup parent)在指定的位置显示View
方法一:
xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <!-- 改变lieview的layout_height --> <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentLeft="true" > </ListView> </RelativeLayout>
java代码:
package com.example.android011; import java.util.ArrayList; import java.util.List; import android.os.Bundle; import android.app.Activity; import android.view.LayoutInflater; import android.view.Menu; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.CheckBox; import android.widget.ListView; import android.widget.TextView; public class MainActivity extends Activity { private ListView listview;// 声明listview private MyAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listview = (ListView) findViewById(R.id.listView1); adapter = new MyAdapter(getData()); listview.setAdapter(adapter); } public List<String> getData() { List<String> list = new ArrayList<String>(); for (int i = 0; i < 10; i++) { list.add("aaa" + i); } return list; } public class MyAdapter extends BaseAdapter { private List<String> list; public MyAdapter(List<String> list) { this.list = list; } // 适配器个数 @Override public int getCount() { // TODO 自动生成的方法存根 return list.size(); } @Override public Object getItem(int position) { // TODO 自动生成的方法存根 return list.get(position); } @Override public long getItemId(int position) { // TODO 自动生成的方法存根 return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO 自动生成的方法存根 //定义每行显示的item为TextView TextView textview = new TextView(MainActivity.this); textview.setText(list.get(position)); System.out.println("----->" + position); return view; } } }
方法2
activity_main.xml:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" < babd span class="hljs-attribute">android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <!-- 改变lieview的layout_height --> <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentLeft="true" > </ListView> </RelativeLayout>
main2.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/xianshi" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#ff8800" android:textSize="20sp" /> </LinearLayout>
MainActivity.java
package com.example.android011; import java.util.ArrayList; import java.util.List; import android.os.Bundle; import android.app.Activity; import android.view.LayoutInflater; import android.view.Menu; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.CheckBox; import android.widget.ListView; import android.widget.TextView; public class MainActivity extends Activity { private ListView listview;// 声明listview private MyAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listview = (ListView) findViewById(R.id.listView1); adapter = new MyAdapter(getData()); listview.setAdapter(adapter); } public List<String> getData() { List<String> list = new ArrayList<String>(); for (int i = 0; i < 10; i++) { list.add("aaa" + i); } return list; } public class MyAdapter extends BaseAdapter { private List<String> list; public MyAdapter(List<String> list) { this.list = list; } // 适配器个数 @Override public int getCount() { // TODO 自动生成的方法存根 return list.size(); } @Override public Object getItem(int position) { // TODO 自动生成的方法存根 return list.get(position); } @Override public long getItemId(int position) { // TODO 自动生成的方法存根 return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { // 手工加载布局,此方法显示的item的样式遵循main2.xml中的TextView View view = LayoutInflater.from(MainActivity.this).inflate( R.layout.main2, null); TextView textview = (TextView) findViewById(R.id.xianshi); textview.setText(list.get(position)); System.out.println("----->" + position); // TextView textview = new TextView(MainActivity.this); // textview.setText(list.get(position)); return view; } } }
相关文章推荐
- 杭电2015’11校赛 1008游乐场
- 练习
- 表设计
- english
- 平衡二叉树(avl树)
- linux-文件系统管理08-dd备份恢复系统
- 如何学习c语言
- scp命令[转]
- 原生JavaScript支持6种方式获取元素
- hdu-- 计算机学院大学生程序设计竞赛(2015’11)
- POJ-2019——Cornfields(二维RMQ?暴力吧!)
- C++知识点梳理(2)
- java 利用spring JavaMailSenderImpl发送邮件,支持普通文本、附件、html、velocity模板
- 用户登录注册留言习题
- 《构建之法》第一章读后随笔
- Skyline中listview中item的onclick事件
- 动态设置布局大小onSizeChanged
- 1-100之间的奇数
- 字典里的value值的类型是是object的类型,不能想当然的去调用其他方法。
- POJ1789