2015-12-19 36 views
-1

我有一些按钮,而不是使用ListView,所以我想添加一个复选框到每个按钮,但我不知道如何。如你所知,CheckBox本身就是一个按钮。是否可以使用按钮内的复选框?

在这一点上我很困惑:我对如何使它

这里是什么,我想这是一个例子不知道这样的:

enter image description here

如果你能帮助我,我真的很感激它。

+0

为什么不用布局来代替。 –

+0

不,因为Button是一个View,而不是ViewGroup(一个容器)。另一方面,CheckBox已经是一个Button。您可以自定义其方面,使其看起来像一个按钮。对于你的[参考](http://developer.android.com/intl/es/reference/android/widget/CheckBox.html) –

+0

ViewGroup extends View,所以你不会有任何问题。 –

回答

0

我会用一个带有TextView和一个空CheckBox的LinearLayout。由于您使用的是ListView,因此应该将OnItemClickListener添加到适配器以处理每个视图中的点击,因此不需要使用按钮。

如果您确实需要/想要使用按钮,请使用FrameLayout代替列表中的每个项目,以便复选框可位于按钮上方。喜欢的东西(未测试):

<FrameLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" > 
<Button 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" /> 
<CheckBox 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center|right" 
    android:layout_marginRight="10dp"/> 

+0

这将添加一个ViewGroup和另一个View。这对演出不太好。 –

1

我只会给你一些一般原则在这里,因为这个问题是广泛的。

如您所知,CheckBox本身继承自Button。这意味着您只需使复选框“看起来”像一个按钮即可满足要求。和所有你需要做的是延长CheckBox

public class CheckBoxButton extends CheckBox { 

} 

当然,你需要实现的构造和材料。最重要的是你需要覆盖onDraw。在那里,你可以在它周围画一个边框。也许画一个阴影让它变成3D。你可以做所有事情,让它看起来像一个按钮。在这里自定义绘制

的更多信息:http://developer.android.com/training/custom-views/custom-drawing.html

或者,你可以找到一个库来做到这一点。 Android Arsenal是找到一个好地方。

相关问题