单击关联的textview时如何启用复选框

时间:2013-04-15 10:12:55

标签: android

我在我的应用程序中使用CheckBox和TextView(我使用Checkbox和Textview之间的图像视图,因此我无法使用CheckBox文本)。如果单击相应的TextView,我想启用/禁用我的Checkbox。有人请帮帮我。

2 个答案:

答案 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(对于一个或多个)。这就是你所需要的一切。 希望它有所帮助。

enter image description here

答案 1 :(得分:0)

我觉得这很简单。在textview上实现一个单击侦听器,然后选中并取消选中onClickListener中的复选框..