019Adapter初解
来源:互联网 发布:模拟炒股软件 知乎 编辑:程序博客网 时间:2024/04/29 21:58
Adapter是什么?
adapter是帮助填充数据的中间桥梁,就是将各种数据以合适的形式显现到view中
MVC是什么
适配器概念结构图
必须学会的适配器: ListAdapter,SinnerAdapter,BaseAdapter
BaseAdapter:抽象类,实际开发中我们会继承这个类并且重写相关方法,用得最多的一个Adapter!
ArrayAdapter:支持泛型操作,最简单的一个Adapter,只能展现一行文字~
SimpleAdapter:同样具有良好扩展性的一个Adapter,可以自定义多种效果!
SimpleCursorAdapter:用于显示简单文本类型的listView,一般在数据库那里会用到,不过有点过时, 不推荐使用!
ArrayAdapter
方法1
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" > <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/textView1" android:layout_marginTop="82dp" android:layout_toRightOf="@+id/textView1" > </ListView></RelativeLayout>
import java.util.ArrayList;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.Toast;public class MainActivity extends Activity {ListView list1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);String[] str = { "1", "2", "3" };ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, str);// 创建适配器,android.R.layout.simple_list_item_1适配器显示方式,str适配器显示资源list1 = (ListView) findViewById(R.id.listView1);// 获取listview资源list1.setAdapter(adapter);// 连接适配器/* * 创建监听器 */list1.setOnItemClickListener(new ItemClickListener());}class ItemClickListener implements OnItemClickListener {@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {// TODO 自动生成的方法存根Toast.makeText(MainActivity.this, " 1", Toast.LENGTH_LONG).show();}}}
方法2
1在values中建立arraylist.xml文件
<?xml version="1.0" encoding="utf-8"?><resources> <string-array name="listarray"> <item >1sssssss</item> <item >2sssssssss</item> <item >3sssssssssss</item> </string-array></resources>
2 java代码
package com.example.androidtext001;import android.os.Bundle;import android.app.Activity;import android.widget.ArrayAdapter;import android.widget.ListView;public class MainActivity extends Activity { // ListView list1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource( MainActivity.this, R.array.listarray, android.R.layout.simple_list_item_1); ListView listview = (ListView) findViewById(R.id.listView1);//获取listview id listview.setAdapter(adapter); }}
SimpleAdapter
1准备3张图片放入drawable中
2编写列表布局文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" > <!-- 定义一个用于显示头像的ImageView --> <ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher" /> <!-- 定义一个竖直方向的LinearLayout,把呢称与说说的文本框设置出来 --> <LinearLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="1" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="1.1" /> </LinearLayout>
3编写主Activity.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_content" > </ListView></LinearLayout>
4 写java
package com.example.androidtext002;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.media.Image;import android.os.Bundle;import android.R.anim;import android.app.Activity;import android.view.Menu;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.SimpleAdapter;public class MActivity extends Activity { private String[] name = { "1", "2", "3", "4" }; private String[] say = { "1.1", "1.2", "1.3", "1.4" }; private int[] imageId = { R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity); /* * 创建ArrayList列表,使用for循环将数据加入到列表中 */ List<Map<String, Object>> listItem = new ArrayList<Map<String, Object>>(); for (int i = 0; i < name.length; i++) { Map<String, Object> showItem = new HashMap<String, Object>(); showItem.put("imageId", imageId[i]); showItem.put("name", name[i]); showItem.put("say", say[i]); listItem.add(showItem); } // 创建适配器 SimpleAdapter myAdapter = new SimpleAdapter(MActivity.this, listItem, R.layout.list_item, new String[] { "name", "say", "imageId" }, new int[] { R.id.textView1, R.id.textView2, R.id.imageView1 }); ListView listView = (ListView) findViewById(R.id.listView1); listView.setAdapter(myAdapter); }}
0 0
- 019Adapter初解
- Adapter
- adapter
- adapter
- adapter
- adapter
- Adapter
- Adapter
- adapter
- Adapter
- Adapter
- Adapter
- adapter
- adapter
- adapter
- Adapter
- Adapter
- adapter
- 拓扑排序
- 关于C语言中的未初始化变量的值
- Android音频捕获(录音)
- 小知识点
- 自己动手丰衣足食之纯CSS画的基本图形(矩形、圆形、三角形、多边形、爱心、八卦等)
- 019Adapter初解
- Android事件分发详解(二)——View的事件分发
- ios safe dictionary simple implement
- JSP跳转
- 开发环境应用检测脚本
- [解决]error MSB8031: Building an MFC project for a non-Unicode character set is deprecated.
- Android事件分发详解(一)——Touch事件传入到Activity的流程
- ThreadLocal类
- Linux中安装文本查看器gedit