android列表框配合BaseAdapter实现列表
来源:互联网 发布:恢复以前手机淘宝 编辑:程序博客网 时间:2024/06/11 12:37
android列表框配合BaseAdapter实现列表
在进行列表框的设计时,可能遇到各种各样的情况,这时候仅仅使用BaseAdapter可能还不够,所以就需要自定义一个adpater。下面就介绍一下自定义adapter。
注意在返回view 的时候推荐使用第二种方法。
布局文件:
<?xml version="1.0" encoding="utf-8"?><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:background="#eee" tools:context="com.example.wuxueyou.myfirstandroidapplication.MainActivity"> <ListView android:id="@+id/list1" android:layout_width="match_parent" android:layout_height="200dp"></ListView> <ListView android:id="@+id/list2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/list1" android:layout_marginTop="50dp"></ListView></RelativeLayout>
Simple_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="wrap_content" android:orientation="horizontal"> <ImageView android:id="@+id/header" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingLeft="10dp" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:id="@+id/name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingLeft="10dp" android:textColor="#f0f" android:textSize="20dp" /> <TextView android:id="@+id/desc" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingLeft="10dp" android:textSize="10dp" /> </LinearLayout></LinearLayout>
package com.example.wuxueyou.myfirstandroidapplication;import android.graphics.Color;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.ListView;import android.widget.TextView;public class MainActivity extends AppCompatActivity { private static final String TAG = "MainActivity"; private ListView listView; private ListView listView2; private String[] names =new String[]{ "张三","李四","王五", "张三","李四","王五", "张三","李四","王五", "张三","李四","王五", "张三","李四","王五", "张三","李四","王五" }; private String[] descs = new String[]{ "学生一个","老师一个","校长一个", "学生一个","老师一个","校长一个", "学生一个","老师一个","校长一个", "学生一个","老师一个","校长一个", "学生一个","老师一个","校长一个", "学生一个","老师一个","校长一个" }; private int[] imgs = new int[]{ R.drawable.p1,R.drawable.p2,R.drawable.p3, R.drawable.p1,R.drawable.p2,R.drawable.p3, R.drawable.p1,R.drawable.p2,R.drawable.p3, R.drawable.p1,R.drawable.p2,R.drawable.p3, R.drawable.p1,R.drawable.p2,R.drawable.p3, R.drawable.p1,R.drawable.p2,R.drawable.p3 }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListView) this.findViewById(R.id.list1); listView2 = (ListView) this.findViewById(R.id.list2); BaseAdapter baseAdapter = new BaseAdapter() { @Override public int getCount() { return 40; } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { //这种方式不采用,因为效率低 //创建返回的view LinearLayout linearLayout = new LinearLayout(MainActivity.this); linearLayout.setOrientation(LinearLayout.HORIZONTAL); //imageview 放在linearLayout中 ImageView imageView = new ImageView(MainActivity.this); imageView.setImageResource(R.drawable.p2); imageView.setPadding(30, 0, 50, 0); //textview放在subLinearLayout中 TextView textView = new TextView(MainActivity.this); textView.setText("这是" + position + "列表项"); textView.setTextSize(20); textView.setTextColor(Color.BLUE); textView.setPadding(0, 10, 0, 0); //bottomTextView放在subLinearLayout中 TextView bottomTextView = new TextView(MainActivity.this); bottomTextView.setText("详细内容" + position); bottomTextView.setTextColor(Color.GRAY); bottomTextView.setTextSize(15); bottomTextView.setPadding(0, 20, 0, 0); //subLinearLayout放在linearLayout中 LinearLayout subLinearLayout = new LinearLayout(MainActivity.this); subLinearLayout.setOrientation(LinearLayout.VERTICAL); subLinearLayout.addView(textView); subLinearLayout.addView(bottomTextView); linearLayout.addView(imageView); linearLayout.addView(subLinearLayout); return linearLayout; } }; listView.setAdapter(baseAdapter); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Log.i(TAG, "list-->" + position); } }); BaseAdapter baseAdapter2 = new BaseAdapter() { @Override public int getCount() { return names.length; } @Override public Object getItem(int position) { return names[position]; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { View view = LayoutInflater.from(MainActivity.this).inflate(R.layout.simple_item, null); TextView name = (TextView) view.findViewById(R.id.name); TextView desc = (TextView) view.findViewById(R.id.desc); ImageView header = (ImageView) view.findViewById(R.id.header); name.setText(names[position]); desc.setText(descs[position]); header.setImageResource(imgs[position]); return view; } }; listView2.setAdapter(baseAdapter2); listView2.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Log.i(TAG,"list2-->" + position); } }); }}
运行效果:
0 0
- android列表框配合BaseAdapter实现列表
- android列表框配合SimpleAdapter实现列表
- [Android] 拓展 BaseAdapter 实现不存储列表项的 ListView
- 扩展BaseAdapter实现储存列表项ListView
- ListView(列表视图)+BaseAdapter(基础适配器)=android滑动列表
- ListView配合RadioButton实现单选列表
- android中使用BaseAdapter的实现灵活扩展的ListView列表
- Android Data Binding 配合BaseAdapter
- 扩展BaseAdapter实现不存储列表项的listview
- 扩展BaseAdapter实现不存储列表项的ListView
- BaseAdapter实现不存储列表选项的 ListView
- 扩展BaseAdapter实现不存储列表项的ListView
- Android中控件ListView列表控件baseadapter方法介绍
- Android 开发 列表选择框实现<列表项可知>
- Android,三级列表实现
- android树形列表实现
- Android联系人列表实现
- Android 实现聊天列表
- mysql中ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing t
- WAMP自定义网站根目录
- 链表面试题逆序打印,删除无头非尾节点,非头位置插入,约瑟夫环,查找中间和倒数第k个节点
- 1047. Student List for Course (25)
- 在drawable下的文件夹命名不能大写
- android列表框配合BaseAdapter实现列表
- iOS App创建桌面快捷方式
- hdu4739(状态压缩dp+正方形判断)
- 威佐夫博弈(模板+减少精度算法)
- Android 沉浸式状态栏以及 透明状态栏 和修改状态栏颜色
- 拍照/选择相册,图片压缩旋转处理
- 2个鸡蛋100层楼/2个玻璃珠39层楼
- String、StringBuffer与StringBuilder与字符串反转
- 移植u-boot2012.04.1 -》2440 (一)新建单板,第一阶段修改