我想创建一个带有文本视图,单选按钮和复选框的自定义导航抽屉。当我检查radiobuttons和chckboxes时,必须显示一些文本。我搜索了几个网站,但没有一个相关。
我所看到的只是创建字符串数组,然后在导航抽屉中将它们显示为列表视图。
我需要一些建议或想法来实现这一点。
答案 0 :(得分:1)
我有一个简单的答案。
首先在strings.xml
<string-array name="titles">
<item>Hotel</item>
<item>Historical Sites</item>
<item>Shopping</item>
<item>Restaurant</item>
<item>Attractions</item>
<item>wild Life</item>
<item>Tour Service</item>
</string-array>
然后将列表视图添加到主菜单
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- Framelayout to display Fragments -->
<FrameLayout
android:id="@+id/frame_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!-- Listview to display slider menu -->
<ListView
android:id="@+id/slider_list"
android:layout_width="300dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#000000"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="0dp"
android:layout_weight="1" />
然后创建list_item.xml
添加以下代码。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="48dp"
android:padding="5dp" >
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
/>
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginTop="10dp"
android:layout_toRightOf="@id/icon"
android:gravity="center_vertical"
android:textColor="#ffffff"
android:textSize="20sp" />
<CheckBox
android:id="@+id/checkBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"/>
</RelativeLayout>
正确编码mainmenu.java
后(您可能应该知道这一点),您可以拥有所需的代码。
希望这有帮助。
答案 1 :(得分:0)
您需要通过扩展BaseAdapter和Override必要的方法
来自定义Adapter类@覆盖 public View getView(int arg0,View arg1,ViewGroup arg2) {
}
Web上有很多教程以及StackOverFlow中的代码片段