simpleAdapter是最基本也是最常用的,虽然可以实现自己的adapter(baseadapter等),但是比较复杂而且没有必要。
package com.cn.demo05vitamio;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.SimpleAdapter;
public class MainActivity extends ActionBarActivity {
private ListView lView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lView = (ListView)findViewById(R.id.list);
lView.setAdapter(new SimpleAdapter(this, getdata(), R.layout.mylist_item,
new String[]{"title",}, new int[]{R.id.text1}));
lView.setOnItemClickListener(new OnItemClickListener() {
@SuppressWarnings("unchecked")
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Map<String, Object> map = (Map<String, Object>)parent.getItemAtPosition(position);
Intent intent =(Intent)map.get("intent");
startActivity(intent);
}
});
}
private List<Map<String, Object>> getdata() {
List<Map<String, Object>> myData = new ArrayList<Map<String,Object>>();
addItem(myData,"title01",new Intent(this, Demo01.class));
addItem(myData,"ttile02",new Intent(this, Demo02.class));
return myData;
}
private void addItem(List<Map<String, Object>> myData, String string,
Intent intent) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("title", string);
map.put("intent", intent);
myData.add(map);
}
}
布局文件R.layout.mylist_item可以自己随意定义样式。