我有一个包含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>
目标:当我在布局中点击时 - 复选框更改状态和文本视图突出显示。
感谢。
答案 0 :(得分: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);
}
}
});
答案 1 :(得分: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);
}
}
});
我不知道你想如何突出显示textview,所以这个例子只包含一个新的背景颜色。
答案 2 :(得分:0)
您可以通过更改文字颜色,放置背景或更改文字类型(如粗体等)来突出显示文字视图。
要更改背景,您可以使用textView.setBackgroundColor(your color code)
。
要更改文字类型,您可以使用textView.setTypeface(null,Typeface.BOLD)
要更改文字颜色,您可以使用textView.setTextColor(your color code
)
在checkChangedListener中的上述答案中显示的位置使用此代码。