国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android ListView 默認選中某一項實現代碼

2019-12-12 05:21:24
字體:
來源:轉載
供稿:網友

這里是使用 TOC 生成的目錄:

•Layout文件定義

◦ListView定義
◦item 模板定義 

•代碼

◦初始化列表
◦用戶點擊處理 

•效果 

--------------------------------------------------------------------------------

要使用 ListView 實現一個充值方式選擇,默認想選中第二項,搞了一下午,終于搞定了。原本就沒怎么用 Java 寫過 Android 應用,又隔了好久沒寫,一切都生疏了,半吊子變成大呆瓜了……

Layout文件定義

分兩部分,一部分是 ListView 的定義,一部分 item 模板,即 row 的定義。

ListView定義

說起來也很簡單,下面是 Layout 文件中的 ListView 定義:

  <ListView    android:id="@+id/recharge_method_list"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:layout_marginTop="6dp"    android:dividerHeight="2dp"    android:divider="@color/ssq_bkgnd"    android:background="@android:color/white"    android:choiceMode="singleChoice"    android:listSelector="@null"    >  </ListView>

嘿,別說,CSDN的Markdown編輯器比原來的默認編輯器好用多了,插入代碼更簡單了。這是第一次使用CSDN的Markdown,贊一個。

item 模板定義

item模板如下定義:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:orientation="horizontal"  android:layout_width="match_parent"  android:layout_height="60dp"  android:gravity="center_vertical"  android:background="@drawable/option_selector"  >  <ImageView    android:id="@+id/recharge_method_icon"    android:layout_width="40dp"    android:layout_height="40dp"    android:layout_marginLeft="20dp"    android:layout_marginRight="4dp"    />  <LinearLayout    android:layout_width="0dp"    android:layout_height="wrap_content"    android:layout_weight="1"    android:orientation="vertical"    >    <TextView      android:id="@+id/recharge_method_name"      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:textSize="15sp"      />    <TextView      android:id="@+id/recharge_method_clue"      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:textSize="12sp"      />  </LinearLayout>  <ImageView    android:id="@+id/recharge_method_checked"    android:layout_width="34dp"    android:layout_height="28dp"    android:layout_marginRight="16dp"    android:src="@drawable/option_checked"    android:visibility="invisible"    /></LinearLayout>

我為了給一個 ListView 的 item 顯示一個選擇圖標,在定義 item 模板文件時直接加了一個 ImageView ,通過控制它的顯示和隱藏來達到看起來選中的效果。偷了個懶,這是比較簡單的實現,在 ListView 中 item 數量不多時對內存、性能等影響不大。

代碼

代碼比較簡單,分兩部分來看吧,一部分是初始化列表,一部分是用戶點擊列表中的某項后切換選中標記。

初始化列表

initRechargeList()方法用來初始化充值方式列表,代碼如下:

  private void initRechargeList(){    actionTexts = new String[]{        getString(R.string.recharge_unionpay), getString(R.string.recharge_alipay), getString(R.string.recharge_bestpay)    };    actionClue = new String[]{        getString(R.string.recharge_unionpay_clue), getString(R.string.recharge_alipay_clue), getString(R.string.recharge_bestpay_clue)    };    actionImages = new int[]{        R.drawable.unionpay,        R.drawable.recharge_icon_alipay,        R.drawable.recharge_icon_bestpay    };    actionList = (ListView)findViewById(R.id.recharge_method_list);    actionItems = new ArrayList<HashMap<String, Object>>();    actionAdapter = new SimpleAdapter(this, actionItems, R.layout.recharge_method_list_item,        new String[]{"action_icon", "action_name", "action_clue"},        new int[]{R.id.recharge_method_icon, R.id.recharge_method_name, R.id.recharge_method_clue});    for(int i = 0; i < actionImages.length; ++i) {      HashMap<String, Object> item = new HashMap<String, Object>();      item.put("action_icon", actionImages[i]);      item.put("action_name", actionTexts[i]);      item.put("action_clue", actionClue[i]);      actionItems.add(item);    }    actionList.setAdapter(actionAdapter);    actionList.setOnItemClickListener(itemListener);    actionList.post(new Runnable() {      @Override      public void run() {        lastCheckedOption = actionList.getChildAt(1).findViewById(R.id.recharge_method_checked);        lastCheckedOption.setVisibility(View.VISIBLE);        actionList.setItemChecked(1, true);      }    });  }

上面的代碼是初始化充值方式列表。 ListView 的用法也比較簡單,View

主站蜘蛛池模板: 麦盖提县| 扎囊县| 顺平县| 澜沧| 西乡县| 洞口县| 双峰县| 辛集市| 凤台县| 比如县| 精河县| 哈巴河县| 昭苏县| 建始县| 罗定市| 鱼台县| 侯马市| 梅河口市| 龙口市| 铜川市| 乳山市| 米泉市| 米脂县| 读书| 信阳市| 和田县| 枣阳市| 康定县| 壶关县| 沧源| 商洛市| 东平县| 山西省| 榆树市| 乌恰县| 方城县| 化隆| 十堰市| 旺苍县| 德格县| 湘潭市|