-1

我有一个包含 CheckBox 和 TextView 的 LinearLayout。我想在按下 CheckBox 时突出显示 TextView。

布局和选择器(在可绘制文件夹中)

<LinearLayout
        android:orientation="vertical"
        android:gravity="center" >
        <CheckBox
            android:id="@+id/chkPlayStop"
            android:button="@drawable/play_stop_state" />
        <TextView
            android:id="@+id/tvPlayStop"
            android:clickable="true"
            android:textColor="@drawable/text_view_state" />

</LinearLayout>

<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:color="@color/white" android:state_pressed="true"/>
    <item android:color="@color/grey" />
</selector>

目标:当我在布局中点击时 - 复选框更改状态和 textview 突出显示。

谢谢。

4

3 回答 3

0

您必须设置OnCheckedChangeListener如下checkbox

checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
    {
        if (isChecked)
        {
            //Highlight the text
            textView.setTypeface(null, Typeface.BOLD_ITALIC);
        } else
        {
            //Unhighlight the text
            textView.setTypeface(null, Typeface.NORMAL);
        }
    }
});
于 2013-01-22T07:08:31.870 回答
0

试试下面的代码:

TextView textView = (TextView) findViewById(R.id.yourTextView);
cb = (CheckBox) findViewById(R.id.yourCheckBox);

cb.setOnClickListener(new OnClickListener() {

  @Override
  public void onClick(View v) {
    if (((CheckBox) v).isChecked()) {
        textView.setBackgroundColor(Color.RED);
    }else{
        textView.setBackgroundColor(Color.BLACK);
    }

  }
});

我不完全知道您要如何突出显示文本视图,因此该示例仅包含新的背景颜色。

于 2013-01-22T07:09:09.677 回答
0

您可以通过更改文本颜色、放置背景或更改文本类型(如粗体等)来突出显示文本视图。

对于更改背景,您可以使用textView.setBackgroundColor(your color code).

要更改文本类型,您可以使用textView.setTypeface(null,Typeface.BOLD)

要更改文本颜色,您可以使用textView.setTextColor(your color code)

在上面的 checkChangedListener 答案中显示的位置使用此代码。

于 2013-01-22T07:16:29.590 回答