安卓实验项目,老师没讲几节课,就让我们做项目交课题了,于是乎我在网上找到一个开源app<<天天爱家务>>,里面有很多需要完善,我想想决定改下名字,于是<<懒人爱家务>>诞生了。
适配器是我第一个不懂的地方,所以决定系统的学一下。
什么是适配器
ListView 和适配器之间的关系
适配器是要将数据传递到ListView里,相当与是数据和ListView之间的一个桥梁
适配器一般是分为三类
a.arrayAdapter这个事最简单的,只能显示一行字
b.SimpleAdapter 是最复杂的,可以进行各种拓展,也是我们这个app重点
c.SimpleCursorAdapter是对数据库的简单结合,app也用到这点
今天我们学习最简单的适配器ArrayAdapter
MainActivity.java
package com.example.test;
import java.util.ArrayList;
import java.util.List;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.ListView;
public class MainActivity extends Activity {
private LinearLayout myLayout;
private ListView myListView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取布局资源中的LinearLayout对象
myLayout=(LinearLayout)this.findViewById(R.id.mylayout);
//创建ListView对象
myListView=new ListView(this);//创建ListView对象
//创建Listview适配器
//参数1:context
//参数2:每一行的布局资源文件,android.R.layout.simple_expandable_list_item_1:系统定义好的,只显示一行文字
//参数3:数据资源,是一个list集合
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,getMyData());
myListView.setAdapter(adapter);//为myListView添加适配器
myLayout.addView(myListView);//把myListView添加到myLayout上
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public List<String> getMyData(){
List<String> myList=new ArrayList<String>();
myList.add("兆鑫");
myList.add("东东");
myList.add("中贵");
myList.add("牧洲");
return myList;
}
}
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"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<LinearLayout
android:id="@+id/mylayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
</LinearLayout>
</RelativeLayout>
结果显示