您的位置:首页 > 其它

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:



<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;
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: