首先在XML文件在创建ListView;
然后再在另一个XML文件中创建TextView和ImageView;
=======================================================================================
Viewactivity
public class Viewactivity extends Activity { private List<Data> dataList = new ArrayList<Data>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); setContentView(R.layout.listview); getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title); intiDatas(); //设置一个adpter适配器 dataAdapter adapter = new dataAdapter(Viewactivity.this,R.layout.data_list , dataList); ListView listView = (ListView) findViewById(R.id.list_view); //将构置好的适配器对象传递进去 listView.setAdapter(adapter); //List中的item按键响应 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { Data data = dataList.get(i); Toast.makeText(Viewactivity.this, data.getDataName(),Toast.LENGTH_SHORT).show(); } }); } private void intiDatas() { Data data1 = new Data("data1", R.drawable.data1); dataList.add(data1); 等等..... } }=======================================================================================
Adapter
=======================================================================================public class dataAdapter extends ArrayAdapter<Data> { private int resourceId; public dataAdapter(Context context, int dataResourceId, List<Data> datas){ super(context,dataResourceId,datas); resourceId = dataResourceId; } //getView方法是在List中被显示在屏幕中使用 @Override public View getView(int position, View convertView, ViewGroup parent) { //使用getItem来获取当前的实例 //获取的是data的String和data图片的ID,在实例化data的时候用了R.id.data1 //实际上R.id.data1是该图片独立的一个INT类型的整数 Data data = getItem(position); ViewHolder viewHolder; View view; //当convertView为空则用layoutInflater去加载布局,否则直接使用convertView if(convertView==null){ //layoutInflater加载我们传入的布局,即是data_list.xml这个文件的ID view = LayoutInflater.from(getContext()).inflate(resourceId,null); viewHolder = new ViewHolder(); //设置图片和名字 viewHolder.dataImage = (ImageView) view.findViewById(R.id.data_image); viewHolder.dataName = (TextView) view.findViewById(R.id.data_list); view.setTag(viewHolder); }else { view = convertView; viewHolder = (ViewHolder) view.getTag(); } viewHolder.dataImage.setImageResource(data.getImgID()); viewHolder.dataName.setText(data.getDataName()); return view; } //ViewHolder用于对控件的实例进行储存. class ViewHolder{ ImageView dataImage; TextView dataName; } }