安卓学习-(滚动布局:ListView)
来源:互联网 发布:淘宝上很火的安娜家 编辑:程序博客网 时间:2024/05/27 21:48
8、ListView
简单的listview,可以滚动到屏幕外
privateString[] data= {"apple","Orange"};
privateList<Fruit> fruitList= newArrayList<Fruit>();
@Override
protected voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayAdapter<String> adaper =new ArrayAdapter<String>(
MainActivity.this, android.R.layout.simple_list_item_1,data);
ListView listview = (ListView) findViewById(R.id.list_view);
listview.setAdapter(adaper);
}
9、ListView2 复杂listview实例
activity.xml
<?xml version="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView>
</LinearLayout>
MainActivity.java
packagecom.example.listviewtest;
importandroid.support.v7.app.AppCompatActivity;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.widget.AdapterView;
importandroid.widget.ArrayAdapter;
importandroid.widget.ListView;
importandroid.widget.Toast;
importjava.util.ArrayList;
importjava.util.List;
public classMainActivity extendsAppCompatActivity {
privateList<Fruit> fruitList= newArrayList<Fruit>();
@Override
protected voidonCreate(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);
listView.setOnItemClickListener(newAdapterView.OnItemClickListener() {
@Override
public voidonItemClick(AdapterView<?> parent, View view,
intposition, longid) {
Fruit fruit =fruitList.get(position);
Toast.makeText(MainActivity.this, fruit.getName(), Toast.LENGTH_SHORT).show();
}
});
}
private voidinitFruits() {
for(inti = 0; i <2; i++) {
Fruit apple =new Fruit("Apple", R.drawable.apple_pic);
fruitList.add(apple);
Fruit banana =new Fruit("Banana", R.drawable.banana_pic);
fruitList.add(banana);
Fruit orange =new Fruit("Orange", R.drawable.orange_pic);
fruitList.add(orange);
Fruit watermelon =new Fruit("Watermelon", R.drawable.watermelon_pic);
fruitList.add(watermelon);
Fruit pear =new Fruit("Pear", R.drawable.pear_pic);
fruitList.add(pear);
Fruit grape =new Fruit("Grape", R.drawable.grape_pic);
fruitList.add(grape);
Fruit pineapple =new Fruit("Pineapple", R.drawable.pineapple_pic);
fruitList.add(pineapple);
Fruit strawberry =new Fruit("Strawberry", R.drawable.strawberry_pic);
fruitList.add(strawberry);
Fruit cherry =new Fruit("Cherry", R.drawable.cherry_pic);
fruitList.add(cherry);
Fruit mango =new Fruit("Mango", R.drawable.mango_pic);
fruitList.add(mango);
}
}
}
Fruit.java
packagecom.example.listviewtest;
public classFruit {
privateString name;
private intimageId;
publicFruit(String name, intimageId) {
this.name= name;
this.imageId= imageId;
}
publicString getName() {
returnname;
}
public intgetImageId() {
returnimageId;
}
}
fruit_item.xml
<?xml version="1.0"encoding="utf-8"?>
<LinearLayoutxmlns: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/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_vertical"
android:layout_marginLeft="10dp"/>
</LinearLayout>
FruitAdapter.java
packagecom.example.listviewtest;
importandroid.content.Context;
importandroid.view.LayoutInflater;
importandroid.view.View;
importandroid.view.ViewGroup;
importandroid.widget.ArrayAdapter;
importandroid.widget.ImageView;
importandroid.widget.TextView;
importjava.util.List;
public classFruitAdapter extendsArrayAdapter<Fruit> {
private intresourceId;
publicFruitAdapter(Context context, int itemLayoutResourceId, List<Fruit> objects) {
super(context,itemLayoutResourceId, objects);
resourceId= itemLayoutResourceId;
}
@Override
//View convertView 用于将之前加载好的数据缓存
publicView getView(intposition, View convertView, ViewGroup parent) {
Fruit fruit = getItem(position);// 获取当前项的Fruit实例
View view;
ViewHolder viewHolder;
if(convertView == null) {
// 如果说当前子布局没有在缓存中,那么就在这里创建这个view
// 然后把布局加载到 viewHolder 里面;再把 viewHolder 放到 view中
// 然后把当前一个子布局的值填进去,最后返回view就行,不用对里面的viewHolder 做操作。
view = LayoutInflater.from(getContext()).inflate(resourceId, parent, false);
viewHolder =new ViewHolder();
viewHolder.fruitImage= (ImageView) view.findViewById (R.id.fruit_image);
viewHolder.fruitName= (TextView) view.findViewById (R.id.fruit_name);
view.setTag(viewHolder);// 将ViewHolder存储在View中
}else {
view = convertView;
viewHolder = (ViewHolder) view.getTag();// 重新获取ViewHolder
}
viewHolder.fruitImage.setImageResource(fruit.getImageId());
viewHolder.fruitName.setText(fruit.getName());
returnview;
}
classViewHolder {
ImageViewfruitImage;
TextViewfruitName;
}
}
阅读全文
0 0
- 安卓学习-(滚动布局:ListView)
- 安卓学习-(滚动布局:RecyclerView)
- 安卓布局之ListView学习笔记
- 安卓listview布局,用法
- 安卓布局学习
- 安卓listview默认布局总结
- 安卓布局,控件imageview,ListView
- 安卓学习:(7)安卓ListView的使用
- 安卓学习:(4)安卓LinearLayout布局
- 安卓学习之布局
- 安卓listview滚动时背景变黑的解决方法
- 安卓listview滚动时背景变黑的解决方法
- 安卓listview滚动时背景变黑的解决方法
- 安卓开发——隐藏ListView的滚动条
- 【安卓-自定义布局】安卓App开发思路 一步一个脚印(十一)实现自定义左右滚动的导航栏目--仿美团
- 【安卓-自定义布局】安卓App开发思路 一步一个脚印(九)实现自定义滚动的新闻条目上下滚动-仿蘑菇街
- 【安卓-自定义布局】安卓App开发思路 一步一个脚印(十三)关于ListView的优化总结
- 安卓开发:自定义ListView布局,并实现监听事件
- 安卓原生时间选择器,DatePicker和TimePicker并用,弹窗dialog
- python安装dlib
- js数字校验
- mv tags
- html5学习之旅第一篇
- 安卓学习-(滚动布局:ListView)
- maven安装jar包到本地仓库和myeclipse开发报错Missing artifact xx解决方法
- Automake 设置说明
- 8种方法让Android成为强大的生产力工具
- Yaf的一些总结
- 中企动力CEO陈鸣飞被评为“2017中国信息化行业领军人物”
- 安卓学习-(滚动布局:RecyclerView)
- 安卓学习- 编写界面(页面布局详解)
- Linux 下git安装