2015-09-14 25 views
0

我要添加填充到Android 複選框,它可以執行onClick事件。如何在Android CheckBox中添加可點擊填充?

我嘗試這樣:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:minHeight="80dp" 
    android:gravity="center_vertical"> 

    <CheckBox 
     android:id="@+id/checked" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:padding="28dp"/> 

    <TextView 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1"/> 

</LinearLayout> 

這:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:minHeight="80dp" 
    android:gravity="center_vertical"> 

    <CheckBox 
     android:id="@+id/checked" 
     android:layout_width="80dp" 
     android:layout_height="80dp" 
     android:gravity="center"/> 

    <TextView 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1"/> 

</LinearLayout> 

但是兩次它不集中!右邊填充有雙倍寬度,左邊填充沒有寬度。

如果我使用的利潤率是這樣的:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:minHeight="80dp" 
    android:gravity="center_vertical"> 

    <CheckBox 
     android:id="@+id/checked" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="28dp"/> 

    <TextView 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1"/> 

</LinearLayout> 

空白部不能執行的onClick事件。

+0

你可以分享你想要實現的設計形象,你現在得到的設計短片 – Nithinlal

回答

0

你可以做的是使用的LinearLayout內包含的複選框的onClick方法的LinearLayout使用您使用的是相同的代碼複選框。更新您的XML如下代碼:

XML代碼:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:minHeight="80dp" 
    android:gravity="center_vertical"> 

    <LinearLayout 
     android:id="@+id/layout_checked" 
     android:layout_width="100dp" 
     android:layout_height="100dp"> 
     <CheckBox 
      android:id="@+id/checked" 
      android:layout_width="80dp" 
      android:layout_height="80dp" 
      android:gravity="center"/> 
    </LinearLayout> 

<TextView 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1"/> 

</LinearLayout> 

Java代碼:

@Override 
    protected void onCreate(Bundle savedInstanceState) { 

    . 
    . 
    . 
    LinearLayout layoutChecked = (LinearLayout)findViewById(R.id.layout_checked); 
    CheckBox checkBox = (CheckBox)findViewById(R.id.checked); 

    layoutChecked..setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        onClickedCheckBox(); 
       } 
      }); 

    checkBox.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        onClickedCheckBox(); 
       } 
      }); 
    } 
    public void onClickedCheckBox(){ 
     //Do whatever you want to do here 
    } 
+0

哦,謝謝你!這是一種方式。 – ebnbin

+0

歡迎您... – Pankaj