<ListViewandroid: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,赞一个。
<?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"><ImageViewandroid:id="@+id/recharge_method_icon"android:layout_width="40dp"android:layout_height="40dp"android:layout_marginLeft="20dp"android:layout_marginRight="4dp"/><LinearLayoutandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:orientation="vertical"><TextViewandroid:id="@+id/recharge_method_name"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="15sp"/><TextViewandroid:id="@+id/recharge_method_clue"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="12sp"/></LinearLayout><ImageViewandroid: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 数量不多时对内存、性能等影响不大。
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() {@Overridepublic void run() {lastCheckedOption = actionList.getChildAt(1).findViewById(R.id.recharge_method_checked);lastCheckedOption.setVisibility(View.VISIBLE);actionList.setItemChecked(1, true);}});}上面的代码是初始化充值方式列表。 ListView 的用法也比较简单,View–Row Template–Data–Adapter,四个要素。
private AdapterView.OnItemClickListener itemListener = new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {if(lastCheckedOption != null){lastCheckedOption.setVisibility(View.INVISIBLE);}lastCheckedOption = view.findViewById(R.id.recharge_method_checked);lastCheckedOption.setVisibility(View.VISIBLE);}};如你所见,我通过 lastCheckedOption 变量保存了上次选中的 item 中的表示选中效果的图标,用户点击某一个时,先隐藏上一个 item 的选中图标,再显示当前的,就有了貌似互斥的效果了。
嗳,插入图片比原来的非 Markdown 编辑器好用多了。
--------------------------------------------------------------------------------
好啦,想不到我又来写 Android 应用了,感觉很 High 啊。
--------------------------------------------------------------------------------
还不知道 Markdown 版本的编辑器写出来的博客,发表出来肿么样呢,生成了个目录,直接 TOC 就 OK 了,还是很方便的。写完了,还是没搞明白段落的行首缩进如何搞呢。
据说还支持离线编辑,赞。
还有一点:左右分栏,可以看到效果,比 github 的 wiki 页面编辑要强一点。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。