SimpleAdapter 继承了BaseAdapter,是一个封装好的类,我们只要在外部给他提供参数,他就可以完成内部实现,代码如下:
public class MainActivity extends Activity
{
int[] p_w_picpathID =
{ R.drawable.ic_launcher, R.drawable.ic_launcher1, R.drawable.ic_launcher2,
R.drawable.ic_launcher3, R.drawable.ic_launcher4 };
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView listView = (ListView) findViewById(R.id.listView1);
List<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>();
for (int i = 0; i < 5; i++)
{
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("title", "title" + i);
map.put("subtitle", "subtitle" + i);
map.put("time", "time" + i);
map.put("p_w_picpath", p_w_picpathID[i]);
data.add(map);
}
String[] from =
{ "title", "subtitle", "time", "p_w_picpath" };
int[] to =
{ R.id.textView1, R.id.textView2, R.id.textView3, R.id.p_w_picpathView1 };
SimpleAdapter adapter = new SimpleAdapter(this, data,
R.layout.listitem, from, to);
listView.setAdapter(adapter);
// SimpleAdapter(Context context, List<? extends Map<String, ?>>
// data, int resource, String[] from, int[] to)
// 构造方法需要传人的参数(上下文, 装有Map的容器对象,子布局,map中的key值,与key要一一对应的控件资源ID)
}
@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;
}
}
这种格式简单,统一,适合用ArrayAdapter,数组适配器。
泛型可以是String类型,代码如下:
ArrayList<String> list = new ArrayList<String>();
for (int i = 0; i < 10; i++)
{
list.add("title" + i);
}
//。。。。。。
ArrayAdapter adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,list);
//这里使用的是android sdk提供的simple_list_item_1子布局
listView.setAdapter(adapter);
以上也可以另一种方法实现,继承ListActivity,就不需要在onCreate()方法里setContentView(textView);
ArrayList<String> mData = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
for (int i = 0; i < 5; i++)
{
mData.add("title" + i);
}
setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mData));
}
转载于:https://blog.51cto.com/wangcuijing/1272584