自定义导航抽屉带单选按钮和复选框

时间:2014-08-01 09:47:08

标签: android android-layout navigation-drawer

我想创建一个带有文本视图,单选按钮和复选框的自定义导航抽屉。当我检查radiobuttons和chckboxes时,必须显示一些文本。我搜索了几个网站,但没有一个相关。

我所看到的只是创建字符串数组,然后在导航抽屉中将它们显示为列表视图。

我需要一些建议或想法来实现这一点。

2 个答案:

答案 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)

  1. 您需要通过扩展BaseAdapter和Override必要的方法

    来自定义Adapter类

    @覆盖 public View getView(int arg0,View arg1,ViewGroup arg2) {

    }

  2. Web上有很多教程以及StackOverFlow中的代码片段