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

歡迎訪問 生活随笔!

生活随笔

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

Android

我的Android进阶之旅------Android二级ListView列表的实现

發布時間:2025/7/14 Android 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 我的Android进阶之旅------Android二级ListView列表的实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

實現如下圖所示的二級列表效果


首先是在布局文件中,布局兩個ListView,代碼如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="horizontal" ><ListViewandroid:id="@+id/listView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:background="#e4e3de"android:choiceMode="singleChoice"android:divider="@drawable/listitem_divide"android:listSelector="#00000000"android:scrollbars="none" ></ListView><ListViewandroid:id="@+id/subListView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="5dp"android:layout_weight="1"android:background="#e4e3de"android:divider="@drawable/listitem_divide" ></ListView> </LinearLayout>
接著給兩個ListView分別寫適配器,父類ListView適配器為MyListAdapter,子類ListView適配器為MySubListAdapter,代碼如下:

/src/com/oyp/multilistview/MyListAdapter.java

package com.oyp.multilistview;import android.content.Context; import android.graphics.Color; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.LinearLayout; import android.widget.TextView;public class MyListAdapter extends BaseAdapter {Context context;LayoutInflater inflater;String[] categories;int last_item;private int selectedPosition = -1;public MyListAdapter(Context context, String[] categories) {this.context = context;this.categories = categories;inflater = LayoutInflater.from(context);}@Overridepublic int getCount() {return categories.length;}@Overridepublic Object getItem(int position) {return position;}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ViewHolder holder = null;if (convertView == null) {convertView = inflater.inflate(R.layout.mylist_item, null);holder = new ViewHolder();holder.textView = (TextView) convertView.findViewById(R.id.textView);holder.layout = (LinearLayout) convertView.findViewById(R.id.colorlayout);convertView.setTag(holder);} else {holder = (ViewHolder) convertView.getTag();}if (selectedPosition == position) {holder.textView.setTextColor(Color.WHITE);holder.layout.setBackgroundColor(Color.TRANSPARENT);} else {holder.textView.setTextColor(Color.BLUE);holder.layout.setBackgroundColor(Color.LTGRAY);}holder.textView.setText(categories[position]);holder.textView.setTextColor(Color.BLACK);return convertView;}public static class ViewHolder {public TextView textView;public LinearLayout layout;}public void setSelectedPosition(int position) {selectedPosition = position;}}
對應的item布局文件為:/res/layout/mylist_item.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/colorlayout"android:layout_width="fill_parent"android:layout_height="fill_parent" ><TextViewandroid:id="@+id/textView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginBottom="8dip"android:layout_marginLeft="8dip"android:layout_marginTop="8dip"android:textSize="16dip" /> </LinearLayout>
/src/com/oyp/multilistview/MySubListAdapter.java

package com.oyp.multilistview;import android.content.Context; import android.graphics.Color; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView;public class MySubListAdapter extends BaseAdapter {Context context;LayoutInflater layoutInflater;String[][] sub_categories;public int categoryPoition;public MySubListAdapter(Context context, String[][] sub_categories, int position) {this.context = context;this.sub_categories = sub_categories;layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);this.categoryPoition = position;}@Overridepublic int getCount() {return sub_categories.length;}@Overridepublic Object getItem(int position) {return getItem(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ViewHolder viewHolder = null;if (convertView == null) {convertView = layoutInflater.inflate(R.layout.mysublist_item, null);viewHolder = new ViewHolder();viewHolder.textView = (TextView) convertView.findViewById(R.id.subTextView);convertView.setTag(viewHolder);} else {viewHolder = (ViewHolder) convertView.getTag();}viewHolder.textView.setText(sub_categories[categoryPoition][position]);viewHolder.textView.setTextColor(Color.BLACK);return convertView;}public static class ViewHolder {public TextView textView;}}
對應的item布局文件為:/res/layout/mysublist_item.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="wrap_content"android:layout_height="wrap_content" ><TextViewandroid:id="@+id/subTextView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginBottom="8dip"android:layout_marginLeft="8dip"android:layout_marginTop="8dip"android:textSize="16dip" /> </LinearLayout>
最后是Activity的實現,代碼如下:

/src/com/oyp/multilistview/MainActivity.java

package com.oyp.multilistview;import android.os.Bundle; import android.app.Activity; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; import android.widget.Toast; import android.widget.AdapterView.OnItemClickListener;public class MainActivity extends Activity {private ListView listView;private ListView subListView;private MyListAdapter myAdapter;private MySubListAdapter subAdapter;String sub_categories[][] = new String[][] {new String[] { "全部美食", "本幫江浙菜", "川菜", "粵菜", "湘菜", "東北菜", "臺灣菜","新疆/清真", "素菜", "火鍋", "自助餐", "小吃快餐", "日本", "韓國料理", "東南亞菜","西餐", "面包甜點", "其他" },new String[] { "全部休閑娛樂", "咖啡廳", "酒吧", "茶館", "KTV", "電影院", "游樂游藝","公園", "景點/郊游", "洗浴", "足浴按摩", "文化藝術", "DIY手工坊", "桌球館","桌面游戲", "更多休閑娛樂" },new String[] { "全部購物", "綜合商場", "服飾鞋包", "運動戶外", "珠寶飾品", "化妝品","數碼家電", "親子購物", "家居建材", "書店", "書店", "眼鏡店", "特色集市","更多購物場所", "食品茶酒", "超市/便利店", "藥店" },new String[] { "全部酒店", "經濟型酒店", "豪華酒店", "度假酒店", "公寓式酒店","客棧/青旅/民宿", "主題精品酒店", " 溫泉酒店", "親子酒店" },new String[] { "全部麗人", "美發", "美容/SPA", "美甲", "瘦身纖體", "個性寫真","瑜伽/舞蹈", "其他" },new String[] { "全部親子", "親子游樂", "親子攝影", "幼兒教育", "主題公園/游樂場","展覽/演出/賽事", "景點郊游", "DIY手工", "農家樂" },new String[] { "全部生活", "商場購物劵", "汽車服務", "鮮花婚慶", "體檢保健", "寵物服務","家政服務", "照片沖印", "配眼鏡" },};String categories[] = new String[] { "美食", "休閑娛樂", "購物", "酒店", "麗人", "親子","生活服務" };@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);listView = (ListView) findViewById(R.id.listView);subListView = (ListView) findViewById(R.id.subListView);myAdapter = new MyListAdapter(getApplicationContext(), categories);listView.setAdapter(myAdapter);setSubList(0);listView.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1,int position, long arg3) {setSubList(position);}});}public void setSubList(int position) {final int location = position;myAdapter.setSelectedPosition(position);myAdapter.notifyDataSetInvalidated();subAdapter = new MySubListAdapter(getApplicationContext(), sub_categories,position);subListView.setAdapter(subAdapter);subListView.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1,int position, long arg3) {// TODO Auto-generated method stubToast.makeText(getApplicationContext(),sub_categories[location][position], Toast.LENGTH_SHORT).show();}});} }


運行效果如下所示:

? ?? ? ? ?

? ?? ? ? ?






??????????????????????????? ====================================================================================

? 作者:歐陽鵬? 歡迎轉載,與人分享是進步的源泉!

? 轉載請保留原文地址:http://blog.csdn.net/ouyang_peng

====================================================================================


轉載于:https://www.cnblogs.com/ouyangpeng/p/8537991.html

總結

以上是生活随笔為你收集整理的我的Android进阶之旅------Android二级ListView列表的实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本精品人妻无码免费大全 | 天天干夜夜草 | 日韩一级片网站 | 日韩有码一区二区三区 | 国产一区色 | 成年人在线视频 | 黄视频在线观看免费 | 成人av资源站 | 欧美激情3p| 婷婷av一区二区三区 | 流白浆视频 | 日本男人的天堂 | av一二三四区 | 国产稀缺真实呦乱在线 | 亚洲精品成人在线视频 | 一区二区三区欧美 | 久久97久久97精品免视看 | 国产成人啪精品午夜在线观看 | 另类天堂av | 天天操天天曰 | 亚洲国产成人自拍 | 不卡一区在线 | 在线免费观看av片 | 日本福利在线 | 四虎av网站 | 国产精品一级片在线观看 | 亚洲欧美日韩中文字幕在线观看 | 精品国产va久久久久久久 | 伊人久久久 | 欧美成人tv | 女人色极品影院 | 黄网站在线免费 | 亚州国产 | 黄色岛国片 | 国产做爰xxxⅹ久久久精华液 | 亚洲天堂国产精品 | 亚洲国产高清视频 | 亚洲日本欧美精品 | 亚洲av无码精品色午夜果冻不卡 | 成人av视屏 | 国产欧美日韩在线视频 | 女人性做爰24姿势视频 | 亚洲第一网址 | 手机看片福利视频 | 老熟女毛茸茸 | 奇米四色在线视频 | 老司机午夜精品视频 | 豆花免费跳转入口官网 | 免费中文字幕日韩 | 久久久精 | 精品人妻一区二区三区浪潮在线 | 一级一级黄色片 | 亚洲国产精品999 | 亚洲视频99| 亚洲精品字幕 | 中国毛片网站 | 亚洲天堂一二三 | 手机在线看片日韩 | 自拍视频在线 | 欧美日韩免费一区二区 | 亚洲一区影视 | 欧美v视频 | 五月天六月婷婷 | av播放网站 | 欧美婷婷六月丁香综合色 | 国产在线播放一区二区 | 国产乱子伦精品无码码专区 | 国内毛片毛片毛片毛片 | 国产欧美一区二区精品忘忧草 | 精品人妻人人做人人爽夜夜爽 | 五月天婷婷影院 | 成人午夜视频一区二区播放 | 国产人妖在线视频 | 欧美一区三区 | 亚洲国产传媒 | 精品日韩一区二区三区四区 | av软件在线观看 | 欧美国产91| 中文字幕乱码中文乱码b站 国产一区二区三区在线观看视频 | 国产人妖一区二区 | 白嫩白嫩国产精品 | www国产无套内射com | 91蜜桃网| 国产精品久久久久一区二区 | 丁香婷婷激情五月 | 九九热九九 | 亚洲一区二区在线观看视频 | 夜色视频网 | av男人网 | 91一区二区三区在线 | 热99这里只有精品 | 天天操夜操 | 久久综合桃花网 | 兔费看少妇性l交大片免费 日韩高清不卡 | 夜夜嗨网站 | 日韩在线精品 | 疯狂做爰高潮videossex | 国产精品福利一区二区 | 日韩 欧美 亚洲 |