定义一个实体类,作为ListView适配器的适配类型 package com.example.listviewtest; public class Fruit { private String name; public int imageId; public Fruit(String name,int imageId) { this.name=name; this.imageId=imageId; } public String getName() { return name; } public int getImageId() { return imageId; } } 然后需要为ListView的子项指定一个我们自定义的布局,fruit_item.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <ImageView android:id="@+id/fruit_image" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/fruit_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginLeft="10dip" /> </LinearLayout> 创建一个自定义的适配器,这个适配器继承自ArrayAdapter,并将泛型指定为Fruit类, package com.example.listviewtest; import java.util.List; 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<Fruit>{ private int resourceId; public FruitAdapter(Context context,int textViewResourceId,List<Fruit> object) { super(context,textViewResourceId,object); resourceId=textViewResourceId; } public View getView(int position,View convertView,ViewGroup parent) { Fruit fruit=getItem(position); //获取当前项的Fruit实例 View view=LayoutInflater.from(getContext()).inflate(resourceId,null); ImageView fruitImage=(ImageView)view.findViewById(R.id.fruit_image); TextView fruitName=(TextView)view.findViewById(R.id.fruit_name); System.out.println(fruit.getImageId()); fruitImage.setImageResource(fruit.getImageId()); fruitName.setText(fruit.getName()); return view; } } activity_main.xml 加入 <ListView android:id="@+id/list_view" android:layout_width="match_parent" android:layout_height="match_parent" ></ListView> package com.example.listviewtest; 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.ListView; public class MainActivity extends Activity { private List<Fruit> fruitList=new ArrayList<Fruit>(); protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initFruits(); //初始化水果数据 FruitAdapter adapter=new FruitAdapter(MainActivity.this,R.layout.fruit_item,fruitList); ListView listView=(ListView)findViewById(R.id.list_view); listView.setAdapter(adapter); } @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; } private void initFruits(){ Fruit apple=new Fruit("Apple",R.drawable.lu); fruitList.add(apple); Fruit apple1=new Fruit("Apple1",R.drawable.lu); fruitList.add(apple1); Fruit apple2=new Fruit("Apple2",R.drawable.lan); fruitList.add(apple2); Fruit apple3=new Fruit("Apple3",R.drawable.huang); fruitList.add(apple3); Fruit apple4=new Fruit("Apple4",R.drawable.lu); fruitList.add(apple4); Fruit apple5=new Fruit("Apple5",R.drawable.lan); fruitList.add(apple5); Fruit apple6=new Fruit("Apple6",R.drawable.huang); fruitList.add(apple6); Fruit apple7=new Fruit("Apple7",R.drawable.lan); fruitList.add(apple7); Fruit apple8=new Fruit("Apple8",R.drawable.lu); fruitList.add(apple8); Fruit apple12=new Fruit("Apple",R.drawable.lu); fruitList.add(apple12); Fruit apple13=new Fruit("Apple1",R.drawable.lu); fruitList.add(apple13); Fruit apple14=new Fruit("Apple2",R.drawable.lan); fruitList.add(apple14); Fruit apple15=new Fruit("Apple3",R.drawable.huang); fruitList.add(apple15); Fruit apple16=new Fruit("Apple4",R.drawable.lu); fruitList.add(apple16); Fruit apple17=new Fruit("Apple5",R.drawable.lan); fruitList.add(apple17); Fruit apple18=new Fruit("Apple6",R.drawable.huang); fruitList.add(apple18); Fruit apple19=new Fruit("Apple7",R.drawable.lan); fruitList.add(apple19); Fruit apple20=new Fruit("Apple8",R.drawable.lu); fruitList.add(apple20); } }
android开发之定制ListView(加载图片)
最新推荐文章于 2023-07-20 16:18:36 发布