2011-12-16 60 views
2

我已經得到了以下的一段layout它已經作爲一個排ListView的:Android:如何在內部使用LinearLayout製作自定義按鈕?

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/schedule_row_content" 
    android:background="@drawable/item_selector" android:layout_width="fill_parent" android:layout_height="60dp"> 
    <TextView android:gravity="center_vertical|center_horizontal" android:layout_gravity="center_vertical" android:layout_height="wrap_content" android:textColor="#000000" android:id="@+id/labelLessonNumber" android:text="1" android:layout_width="27dp"></TextView> 
    <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingLeft="10px" android:layout_weight="1" android:layout_gravity="center_vertical"> 
     <TextView android:layout_height="wrap_content" android:textColor="#000000" android:id="@+id/labelSubject" android:layout_width="fill_parent" android:textAppearance="?android:attr/textAppearanceMedium" android:text="Text"></TextView> 
     <TextView android:layout_height="wrap_content" android:textColor="#555555" android:layout_width="wrap_content" android:id="@+id/labelTime" android:text="00:00"></TextView> 
    </LinearLayout> 
    <LinearLayout android:layout_width="wrap_content" android:layout_height="fill_parent"> 
     <TextView android:gravity="center" android:width="80dp" android:layout_gravity="center_vertical" android:layout_height="wrap_content" android:textColor="#000000" android:layout_width="wrap_content" android:id="@+id/labelGroup" android:textAppearance="?android:attr/textAppearanceSmall" android:text="Klasa Ia"></TextView> 
    </LinearLayout>  
</LinearLayout> 

我想用這個layout創建自定義按鈕(在ListView內部的工作方式相同) 。是否有任何容器從內部視圖中捕獲onClick事件?

回答

1

如果您只需點擊按鈕,那麼一個簡單而直接的解決方案就是採用線性佈局並將其背景設置爲自定義選擇器drawable,然後只需在java中設置此線性佈局的onclick監聽器碼。

Custom Selector link 1

Custom Selector link 2

在你的情況,我們可以發現點擊聽衆共同所有列表項,但爲所有列表項的按鈕設置不同的標籤對象區分。

我希望它有助於..

0

我不知道你是否可以使用你的佈局,自定義按鈕,因爲它的可點擊的標誌應當設置爲true。如果你這樣做,它會捕獲onClick事件,你將有問題與ListView。嘗試設置機器人:可點擊=「true」以你的佈局和使用包括標籤:

<include android:id="@+id/your_layout" 
    layout="@layout/your_layout" 
android:layout_height="wrap_content" 
android:layout_width="fill_parent"/> 
0

無需將任何東西放入按鈕,你需要的可點擊的佈局INFACT,所以爲了這個目的只是用這個。

<LinearLayout 
android:clickable="true" 
android:background="@android:drawable/btn_default" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
<ImageView 
    android:id="@+id/image" 
    android:layout_alignParentLeft="true" 
    android:layout_centerVertical="true" 
    android:src="@android:drawable/ic_input_add" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 
</ImageView> 
<TextView 
    android:id="@+id/text" 
    android:text="Sample text" 
    android:textAppearance="?android:attr/textAppearanceButton" 
    android:layout_toRightOf="@id/image" 
    android:layout_centerVertical="true" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"></TextView> 
</LinearLayout> 

所以機器人:可點擊=「真」將使佈局點擊,並會像一個按鈕:)希望這是很有幫助的。