我在我的应用程序中使用CheckBox和TextView(我使用Checkbox和Textview之间的图像视图,因此我无法使用CheckBox文本)。如果单击相应的TextView,我想启用/禁用我的Checkbox。有人请帮帮我。
答案 0 :(得分:3)
试试这个:
main.xml中
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="match_parent"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="First text box"
android:id="@+id/tb_1"
/>
<CheckBox
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_margin="10dp"
android:id="@+id/cb_1"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Second text box"
android:id="@+id/tb_2"
android:layout_marginTop="50dp"
/>
<CheckBox
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_margin="10dp"
android:id="@+id/cb_2"
/>
</LinearLayout>
MyActivity.java
public class MyActivity extends Activity implements View.OnClickListener {
private TextView tv1;
private CheckBox cb1;
private TextView tv2;
private CheckBox cb2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv1 = (TextView)findViewById(R.id.tb_1);
tv2 = (TextView)findViewById(R.id.tb_2);
cb1 = (CheckBox)findViewById(R.id.cb_1);
cb2 = (CheckBox)findViewById(R.id.cb_2);
tv1.setOnClickListener(this);
tv2.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId())
{
case (R.id.tb_1):
{
cb1.setChecked(!cb1.isChecked());
break;
}
case (R.id.tb_2):
{
cb2.setChecked(!cb2.isChecked());
break;
}
}
}
}
当您点击其中一个TextView
时,您只需为嵌套setChecked
设置当前值CheckBox
(对于一个或多个)。这就是你所需要的一切。
希望它有所帮助。
答案 1 :(得分:0)
我觉得这很简单。在textview上实现一个单击侦听器,然后选中并取消选中onClickListener中的复选框..