欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android:ListView简单实例

程序员文章站 2022-07-14 12:53:08
...

ListView是Android中最重要的控件之一,是用于对数据进行列展示的控件。ListView允许用户通过手指上下滑动的方式将屏幕外的数据滚动到屏幕内,同时屏幕内的数据则会滚动出屏幕。


实例一

效果展示:
Android:ListView简单实例

1.样式布局文件listview_layout

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout	xmlns:android="http://schemas.android.com/apk/res/android"	xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".ListViewActivity">
    <ListView
        android:id="@+id/list_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>

2.ListViewActivity.java

public class ListViewActivity extends AppCompatActivity {
    private String[] data = {"Ashin","Monster","Masa","Stone","Ming","MAYDAY","You","and","I"};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
       	super.onCreate(savedInstanceState);
        setContentView(R.layout.listview_layout);
   	ArrayAdapter<String> myAdapter = new ArrayAdapter<String>(ListViewActivity.this,android.R.layout.simple_expandable_list_item_1,data);
        ListView listview = (ListView)findViewById(R.id.list_view);
        listview.setAdapter(myAdapter);
    }
}

实例二

效果展示:
Android:ListView简单实例

图片下载地址:https://www.iconfont.cn/ (可以选择自己喜欢的图)

1.listview_layout.xml 同上
2.food_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout	xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">    
    <ImageView
        android:id="@+id/food_image"
        //可以自己设置图片大小
        android:layout_width="100dip"
        android:layout_height="100dip" />
    <TextView
        android:id="@+id/food_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginLeft="10dip"/>
</LinearLayout>

3.ListViewActivity1.java

public class ListViewActivity1 extends AppCompatActivity {
    private List<Food> foodList = new ArrayList<Food>(); 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
        setContentView(R.layout.listview_layout);
	initFood();
	FoodAdapter myFoodAdapter = new FoodAdapter(ListViewActivity1.this,R.layout.food_item,foodList);
	ListView listView = (ListView) findViewById(R.id.list_view);
	listView.setAdapter(myFoodAdapter);
	private void initFood() {
		//图片存放在drawable
		Food burger = new Food("burger", R.drawable.burger);
		foodList.add(burger);
		Food cheese = new Food("cheese", R.drawable.cheese);
		foodList.add(cheese);
		Food cupcake = new Food("cupcake", R.drawable.cupcake);
		foodList.add(cupcake);
		Food egg = new Food("egg", R.drawable.egg);
		foodList.add(egg);
		Food honey = new Food("honey", R.drawable.honey);
		foodList.add(honey);
		Food hot_dog = new Food("hot_dog", R.drawable.hot_dog);
		foodList.add(hot_dog);
		Food ice_cream = new Food("ice_cream", R.drawable.ice_cream);
		foodList.add(ice_cream);
		Food milk = new Food("milk", R.drawable.milk);
		foodList.add(milk);
		Food ramen = new Food("ramen", R.drawable.ramen);
		foodList.add(ramen);
	}
}

4.Food.java

public class Food {
    private String name;
  	private int imageId;
    public Food(String foodname,int foodimage){
        this.name = foodname;
        this.imageId = foodimage;
    }
    public String getName(){
        return name;
    }
    public int getImageId(){
        return imageId;
    }
}

5.FoodAdapter.java

import java.util.List;
public class FoodAdapter extends ArrayAdapter {
	private final int resourceId;
   	public FoodAdapter(@NonNull Context context, int textViewResourceId, @NonNull List objects) {
        super(context,textViewResourceId, objects);
        resourceId = textViewResourceId;
    }
    public View getView(int position, View converView, ViewGroup parent){
        Food food = (Food)getItem(position);
        View view;
        ViewHolder viewHolder;
        if(converView == null){
            view = LayoutInflater.from(getContext()).inflate(resourceId,parent,false);
            viewHolder = new ViewHolder();
            viewHolder.foodImage = (ImageView)view.findViewById(R.id.food_image);
            viewHolder.foodName = (TextView)view.findViewById(R.id.food_name);
            view.setTag(viewHolder);
        }
        else{
            view = converView;
            viewHolder = (ViewHolder)view.getTag();
        }
        viewHolder.foodImage.setImageResource(food.getImageId());
        viewHolder.foodName.setText(food.getName());
        return view;
    }
    class ViewHolder{
        ImageView foodImage;
        TextView foodName;
    }
 }
相关标签: ListView Android