日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android ListView存在多个item样式的处理方法

發(fā)布時間:2025/7/14 Android 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android ListView存在多个item样式的处理方法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

? ? ? 在項目開發(fā)的時候,相信大家可能會遇到一個ListView中出現(xiàn)多個不同的布局,遇到這個問題我的大致思路就是創(chuàng)建多個viewholder,在getViewType的時候設(shè)置不同位置的item用不同的viewholder,好了不廢話那么多直接上代碼:

package?com.sunny.youdao;import?java.util.ArrayList; import?java.util.List;import?android.content.Context; import?android.util.Log; import?android.view.LayoutInflater; import?android.view.View; import?android.view.ViewGroup; import?android.widget.BaseAdapter; import?android.widget.CheckBox; import?android.widget.ImageView; import?android.widget.LinearLayout; import?android.widget.TextView;public?class?MyAdapter?extends?BaseAdapter?{private?Context?mContext;private?LinearLayout?linearLayout?=?null;private?LayoutInflater?inflater;private?List<String>?list?=?new?ArrayList<String>();private?TextView?tex;private?final?int?VIEW_TYPE?=?3;private?final?int?TYPE_1?=?0;private?final?int?TYPE_2?=?1;private?final?int?TYPE_3?=?2;public?MyAdapter(Context?context,?List<String>?list)?{//?TODO?Auto-generated?constructor?stubthis.mContext?=?context;this.list?=?list;inflater?=?LayoutInflater.from(mContext);}@Overridepublic?int?getCount()?{//?TODO?自動生成的方法存根return?list.size();}@Overridepublic?Object?getItem(int?position)?{//?TODO?自動生成的方法存根return?list.get(position);}@Overridepublic?long?getItemId(int?position)?{//?TODO?自動生成的方法存根return?position;}//每個convert?view都會調(diào)用此方法,獲得當前所需要的view樣式@Overridepublic?int?getItemViewType(int?position)?{//?TODO?Auto-generated?method?stubint?viewtype?=?position%6;if(viewtype?==?0)return?TYPE_1;else?if(viewtype?<?3)return?TYPE_2;else?if(viewtype?<?6)return?TYPE_3;elsereturn?TYPE_1;}//返回樣式的數(shù)量@Overridepublic?int?getViewTypeCount()?{//?TODO?Auto-generated?method?stubreturn?3;}@Overridepublic?View?getView(int?position,?View?convertView,?ViewGroup?parent)?{viewHolder1?holder1?=?null;viewHolder2?holder2?=?null;viewHolder3?holder3?=?null;int?type?=?getItemViewType(position);//?無convertView,需要new出各個控件if?(convertView?==?null)?{Log.e("convertView?=?",?"###convertView為空###");//?按當前所需的樣式,確定new的布局switch?(type)?{case?TYPE_1:convertView?=?inflater.inflate(R.layout.listitem1,?parent,false);holder1?=?new?viewHolder1();holder1.textView?=?(TextView)?convertView.findViewById(R.id.textview1);holder1.checkBox?=?(CheckBox)?convertView.findViewById(R.id.checkbox);Log.e("convertView?=?",?"布局樣式一");convertView.setTag(holder1);break;case?TYPE_2:convertView?=?inflater.inflate(R.layout.listitem2,?parent,false);holder2?=?new?viewHolder2();holder2.textView?=?(TextView)?convertView.findViewById(R.id.textview2);Log.e("convertView?=?",?"布局樣式二");convertView.setTag(holder2);break;case?TYPE_3:convertView?=?inflater.inflate(R.layout.listitem3,?parent,false);holder3?=?new?viewHolder3();holder3.textView?=?(TextView)?convertView.findViewById(R.id.textview3);holder3.p_w_picpathView?=?(ImageView)?convertView.findViewById(R.id.p_w_picpathview);Log.e("convertView?=?",?"布局樣式三");convertView.setTag(holder3);break;}}?else?{//?有convertView,按樣式,取得不用的布局switch?(type)?{case?TYPE_1:holder1?=?(viewHolder1)?convertView.getTag();Log.e("convertView=?",?"布局樣式一");break;case?TYPE_2:holder2?=?(viewHolder2)?convertView.getTag();Log.e("convertView=?",?"布局樣式二");break;case?TYPE_3:holder3?=?(viewHolder3)?convertView.getTag();Log.e("convertView=?",?"布局樣式三");break;}}//?設(shè)置資源switch?(type)?{case?TYPE_1:holder1.textView.setText(Integer.toString(position));holder1.checkBox.setChecked(true);break;case?TYPE_2:holder2.textView.setText(Integer.toString(position));break;case?TYPE_3:holder3.textView.setText(Integer.toString(position));holder3.p_w_picpathView.setBackgroundResource(R.drawable.icon);break;}return?convertView;}//?各個布局的控件資源class?viewHolder1?{CheckBox?checkBox;TextView?textView;}class?viewHolder2?{TextView?textView;}class?viewHolder3?{ImageView?p_w_picpathView;TextView?textView;}}

? ? 代碼比較直觀明了,注釋也比較詳細,就不在詳細說明了,歡迎大家一塊學(xué)習(xí)交流~

轉(zhuǎn)載于:https://blog.51cto.com/sunnygeek/1671245

總結(jié)

以上是生活随笔為你收集整理的Android ListView存在多个item样式的处理方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。