布局文件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" >
<ListView
android:id="@+id/lvfruits"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" >
</ListView>
</RelativeLayout>
MainActivity.java
package cn.edu.bzu.androidboke;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import cn.edu.bzu.adapter.FruitAdapter;
import cn.edu.bzu.fruits.Fruits;
import cn.edu.bzu.adapter.*;
public class MainActivity extends Activity {
//@Override准备数据的操作
/*创建适配器绑定数据与图片之间的关联fruitName和fruiticon*/
private ListView lvfruits;
private List<Fruits> fruitList=new ArrayList<Fruits>();
List<Map<String,Object>> data=new ArrayList<Map<String,Object>>();
private String[]fruitName={"Apple", "Banana", "Orange", "Watermelon",
"Pear", "Grape", "Pineapple", "Strawberry", "Cherry", "Mango" };
private int[]fruitIcon={R.drawable.apple_pic,R.drawable.banana_pic,R.drawable.cherry_pic,R.drawable.grape_pic,R.drawable.mango_pic,R.drawable.orange_pic,R.drawable.pear_pic,
R.drawable.pineapple_pic,R.drawable.strawberry_pic,R.drawable.watermelon_pic};
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//调用方法准备数据
initFruits();
//查找组建
lvfruits=(ListView) findViewById(R.id.lvfruits);
//创建adapter
//绑定AdapterView与Adapter之间的关联
SimpleAdapter simpleadapter=new SimpleAdapter(this, data,R.layout.fruit_item, new String[]{"fruitName","fruitIcon"}, new int[]{R.id.tvfruit,R.id.ivfruit});
lvfruits.setAdapter(simpleadapter);
}
private void initFruits() {
// TODO Auto-generated method stub
for(int i=0;i<fruitName.length;i++){
Map<String,Object> item=new HashMap<String,Object>();
item.put("fruitIcon",fruitIcon[i] );
item.put("fruitName", fruitName[i]);
data.add(item); }
}
@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;
}
}
package cn.edu.bzu.fruits;
public class Fruits {
private String Name;
private int FruitId;
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public int getFruitId() {
return FruitId;
}
public void setFruitId(int fruitId) {
FruitId = fruitId;
}
public int getImageId() {
// TODO Auto-generated method stub
return 0;
}
}
布局文件fruit_item.xml自定义的布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<ImageView
android:id="@+id/ivfruit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/apple_pic" />
<TextView
android:id="@+id/tvfruit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="Apple"
android:textSize="24dp" />
</LinearLayout>
package cn.edu.bzu.adapter;
import cn.edu.bzu.androidboke.R;
import cn.edu.bzu.fruits.Fruits;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class FruitAdapter extends ArrayAdapter {
private int resourceId;
public FruitAdapter(Context context, int resource, int textViewResourceId) {
super(context, resource, textViewResourceId);
resourceId=textViewResourceId;
// TODO Auto-generated constructor stub
}
public View getView(int position,View convertView,ViewGroup parent){
//此方法当每个子项被滚动到的时候都会被调用
Fruits fruit = (Fruits) getItem(position);
//把子项的图片和文字转换为View
View view = LayoutInflater.from(getContext()).inflate(resourceId, null);
//设置被滚动到的图片和文字
ImageView fruitImage = (ImageView) view.findViewById(R.id.ivfruit);
TextView fruitName = (TextView) view.findViewById(R.id.tvfruit);
fruitImage.setImageResource(fruit.getFruitId());
fruitName.setText(fruit.getName());
return view;
}
}
实现效果