adapter

来源:互联网 发布:淘宝评价上传图片失败 编辑:程序博客网 时间:2024/05/22 09:32

----------------------------下边是ArrayAdapter--------------------------


activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <Button        android:id="@+id/arrayAdapter"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="arrayAdapter"         android:onClick="testAA"/>    <Button        android:id="@+id/simpleAdapter"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="simpleAdapter:"         android:onClick="testSA"/>    <Button        android:id="@+id/baseAdapter"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="baseAdapter"         android:onClick="testBA"/></LinearLayout>

activity_listview.xml

<ListView xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/lv_listview"    android:layout_width="fill_parent"    android:layout_height="fill_parent" ></ListView>

MainActivity.java

package com.atguigu.listviewapp;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void testAA(View view){startActivity(new Intent(this, ArrayAdapterActivity.class));}}

ArrayAdapterActivity.java

package com.atguigu.listviewapp;import android.app.Activity;import android.os.Bundle;import android.widget.ArrayAdapter;import android.widget.ListView;public class ArrayAdapterActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 加载视图setContentView(R.layout.activity_listview);// 获取listview视图对象ListView lv_listview = (ListView)findViewById(R.id.lv_listview);String[] data = {"A","B","C","A","B","C","A","B","C","A","B","C",};//获取适配器ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,data );//设置适配器lv_listview.setAdapter(adapter);}}

---------------------------------我是分割线,下边是simpleAdapter----------------------------------


activity_listview.xml

<ListView xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/lv_listview"    android:layout_width="fill_parent"    android:layout_height="fill_parent" ></ListView>

sa_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/iv_item_sa_head"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:src="@drawable/ic_launcher"/>    <TextView        android:id="@+id/tv_item_sa_title"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_toRightOf="@id/iv_item_sa_head"android:text="标题"/>        <TextView        android:id="@+id/tv_item_sa_content"        android:layout_width="wrap_content"        android:layout_height="wrap_content"         android:layout_toRightOf="@id/iv_item_sa_head"         android:layout_below="@id/tv_item_sa_title"android:text="内容"/></RelativeLayout>

SimpleAdapterActivity.java

package com.atguigu.listviewapp;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.Activity;import android.os.Bundle;import android.widget.ListView;import android.widget.SimpleAdapter;public class SimpleAdapterActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 加载布局文件setContentView(R.layout.activity_listview);// 获取listview对象--空对象ListView lv_listview = (ListView) findViewById(R.id.lv_listview);// 获取data数据List<Map<String, Object>> data = getData();// 指定Map中获取数据的key的数组String[] from = { "head", "title", "content" };// 将数据设置到对应的id中int[] to = { R.id.iv_item_sa_head, R.id.tv_item_sa_title,R.id.tv_item_sa_content };// 获取适配器==将data数据源添加到sa_item样式中,SimpleAdapter simpleAdapter = new SimpleAdapter(this, data,R.layout.sa_item, from, to);// 设置适配器lv_listview.setAdapter(simpleAdapter);}private List<Map<String, Object>> getData() {List<Map<String, Object>> data = new ArrayList<Map<String, Object>>();// 每个map是一条记录,也就是视图中的一行Map<String, Object> map = new HashMap<String, Object>();map.put("head", R.drawable.i1);map.put("title", "title1--");map.put("content", "content1--");data.add(map);map = new HashMap<String, Object>();map.put("head", R.drawable.i2);map.put("title", "title2--");map.put("content", "content2--");data.add(map);map = new HashMap<String, Object>();map.put("head", R.drawable.i3);map.put("title", "title3--");map.put("content", "content3--");data.add(map);return data;}}
----------------------------------我是分割线,下边是baseadapter--------------------------------


activity_listview.xml

<ListView xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/lv_listview"    android:layout_width="fill_parent"    android:layout_height="fill_parent" ></ListView>

sa_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/iv_item_sa_head"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:src="@drawable/ic_launcher"/>    <TextView        android:id="@+id/tv_item_sa_title"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_toRightOf="@id/iv_item_sa_head"android:text="标题"/>        <TextView        android:id="@+id/tv_item_sa_content"        android:layout_width="wrap_content"        android:layout_height="wrap_content"         android:layout_toRightOf="@id/iv_item_sa_head"         android:layout_below="@id/tv_item_sa_title"android:text="内容"/></RelativeLayout>

UserInfo.java

private int head;private String title;private String content;

BaseAdapterActivity.java

package com.atguigu.listviewapp;import java.util.ArrayList;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.ListView;import android.widget.TextView;public class BaseAdapterActivity extends Activity {private ArrayList<UserInfo> GetData() {ArrayList<UserInfo> data = new ArrayList<UserInfo>();UserInfo info = new UserInfo(R.drawable.i1, "titlea", "contenta");data.add(info);info = new UserInfo(R.drawable.i2, "titleb", "contentb");data.add(info);info = new UserInfo(R.drawable.i3, "titlec", "contentc");data.add(info);return data;}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 记载视图空setContentView(R.layout.activity_listview);// 获取改视图对象ListView lv_listview = (ListView) findViewById(R.id.lv_listview);// 获取数据final ArrayList<UserInfo> data = GetData();// 设置适配器BaseAdapter baseAdapter = new BaseAdapter() {// 得到某个itemView对象@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// 加载布局文件-当前环境、加载哪个文件View view = View.inflate(BaseAdapterActivity.this,R.layout.sa_item, null);// 得到对应的数据对象UserInfo userInfo = data.get(position);// 将数据设置到对应的视图中ImageView imageView = (ImageView) view.findViewById(R.id.iv_item_sa_head);imageView.setImageResource(userInfo.getHead());TextView titleTV = (TextView) view.findViewById(R.id.tv_item_sa_title);titleTV.setText(userInfo.getTitle());TextView contentTV = (TextView) view.findViewById(R.id.tv_item_sa_content);contentTV.setText(userInfo.getContent());return view;}@Overridepublic long getItemId(int position) {return position;}// 根据下标得到对应的数据对象@Overridepublic Object getItem(int position) {return data.get(position);}@Overridepublic int getCount() {return data.size();}};lv_listview.setAdapter(baseAdapter);}}或者方法二package com.atguigu.listviewapp;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.ListView;import android.widget.TextView;public class BaseAdapterActivity1 extends Activity {private ListView lv_listview;private List<UserInfo> data;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_listview);lv_listview = (ListView) findViewById(R.id.lv_listview);initData();BaseAdapter adapter = new MyAdapter();lv_listview.setAdapter(adapter);}//初始化集合数据private void initData() {data = new ArrayList<UserInfo>();UserInfo info = new UserInfo(R.drawable.i1, "titlea", "contenta");data.add(info);info = new UserInfo(R.drawable.i2, "titleb", "contentb");data.add(info);info = new UserInfo(R.drawable.i3, "titlec", "contentc");data.add(info);info = new UserInfo(R.drawable.i1, "titlea2", "contenta2");data.add(info);info = new UserInfo(R.drawable.i2, "titleb2", "contentb2");data.add(info);info = new UserInfo(R.drawable.i3, "titlec2", "contentc2");data.add(info);}//自定义Adapterprivate class MyAdapter extends BaseAdapter {@Overridepublic int getCount() {//得到数据的数量return data.size();}@Overridepublic Object getItem(int position) {//根据下标得到对应数据对象return data.get(position);}@Overridepublic long getItemId(int position) {return position;}//得到某个itemView对象@Overridepublic View getView(int position, View convertView, ViewGroup parent) {//加载布局文件View view = View.inflate(BaseAdapterActivity1.this, R.layout.sa_item, null);//得到对应的数据对象UserInfo userInfo = data.get(position);//将数据设置到对应的视图中ImageView imageView = (ImageView) view.findViewById(R.id.iv_item_sa_head);imageView.setImageResource(userInfo.getHead());TextView titleTV = (TextView) view.findViewById(R.id.tv_item_sa_title);titleTV.setText(userInfo.getTitle());TextView contentTV = (TextView) view.findViewById(R.id.tv_item_sa_content);contentTV.setText(userInfo.getContent());return view;}}}













0 0