ListView 多种Item的加载
来源:互联网 发布:mysql 5.7.20 编辑:程序博客网 时间:2024/06/05 10:05
item_title.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/item_title" android:background="#ccc" android:layout_width="match_parent" android:layout_height="wrap_content"/></LinearLayout>
item_content.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/item_content" android:layout_width="match_parent" android:layout_height="wrap_content"/></LinearLayout>
主布局
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main2" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.yongyida.robot.voice.test.Main2Activity"> <TextView android:textSize="30sp" android:text="多种item的ListView" android:gravity="center" android:layout_width="match_parent" android:layout_height="wrap_content"/> <ListView android:id="@+id/listView" android:layout_width="match_parent" android:layout_height="wrap_content"> </ListView>
public class Main2Activity extends AppCompatActivity { private ListView listView; private ArrayList<String> list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); init(); } private void init(){ listView = (ListView) findViewById(R.id.listView); list = new ArrayList<>(); list.add("A"); for(int i = 1 ;i < 6; i++){ list.add("A"+i); } list.add("B"); for(int i = 1 ;i < 11; i++){ list.add("B"+i); } MultiItemAdapter multiItemAdapter = new MultiItemAdapter(Main2Activity.this,list); listView.setAdapter(multiItemAdapter); }}
public class MultiItemAdapter extends BaseAdapter { private Context context; private static final int TYPE_O = 0; private static final int TYPE_1 = 1; private static final int TYPE_COUNT = 2; private ArrayList<String> list; public MultiItemAdapter(Context context,ArrayList<String> list){ this.context = context; this.list = list; } @Override public int getCount() { return list == null ? 0 : list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public int getItemViewType(int position) { return list.get(position).length() == 1 ? TYPE_O : TYPE_1; } @Override public int getViewTypeCount() { return TYPE_COUNT; } @Override public View getView(int position, View convertView, ViewGroup parent) { View view = null; ViewHolder1 viewHolder1 = null; ViewHolder2 viewHolder2 = null; int type = getItemViewType(position); if(convertView == null){ switch (type){ case TYPE_O: view = LayoutInflater.from(context).inflate(R.layout.item_title,null); viewHolder1 = new ViewHolder1(); viewHolder1.title = (TextView) view.findViewById(R.id.item_title); viewHolder1.title.setText(list.get(position)); view.setTag(viewHolder1); break; case TYPE_1: view = LayoutInflater.from(context).inflate(R.layout.item_content,null); viewHolder2 = new ViewHolder2(); viewHolder2.content = (TextView) view.findViewById(R.id.item_content); viewHolder2.content.setText(list.get(position)); view.setTag(viewHolder2); break; } }else{ switch (type){ case TYPE_O: view = convertView; viewHolder1 = (ViewHolder1) view.getTag(); viewHolder1.title.setText(list.get(position)); break; case TYPE_1: view = convertView; viewHolder2 = (ViewHolder2) view.getTag(); viewHolder2.content.setText(list.get(position)); break; } } return view; } class ViewHolder1{ TextView title; } class ViewHolder2{ TextView content; }}
0 0
- ListView 多种Item的加载
- 关于listview加载多种item的解决方案
- ListView 加载多种不同的item
- ListView里item加载多种布局文件
- ListView有多种Item View的优化
- ListView有多种Item View的优化
- ListView加载多种的样式
- listview多种形式item
- Listview item加载的过程
- listview里面的item的多种view模式(多种类型的item)
- ListView Item多种布局优化
- Android--listview多种类型item
- listview遇到多种样式item
- ListView具有多种item布局
- ListView Item多种布局优化
- ListView Item多种布局优化
- android listView的item 显示多种不同的布局
- 自定义Adapter实现多种Item视图的ListView
- 没有谁的幸福值得你去羡慕
- markdown
- 时间格式转换
- JNI基础语法1
- 获取绝对路径
- ListView 多种Item的加载
- phpcms常用标签调用
- Android Studio性能
- 软件测试计划模板
- 3月14号
- css 常用样式
- Redis设置Key的过期时间 – EXPIRE命令
- 使用IDA Pro动态调试SO文件
- oracle下载