您的位置:首页 > 移动开发 > Android开发

Android:ListView简单实例

2020-04-23 09:34 911 查看

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);
}
}

实例二

效果展示:

图片下载地址: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;
}
}
  • 点赞
  • 收藏
  • 分享
  • 文章举报
ashinwsl 发布了3 篇原创文章 · 获赞 0 · 访问量 97 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: