复选框灰显文字
问题描述:
我对复选框有疑问。如果复选框未勾选,但我无法做到这一点,我正在尝试变灰一些文字。我之前做过,但忘记了,我的代码有点乱了,因为我没有保存它的副本。复选框灰显文字
这是java。
package com.example.mobilebillforecaster;
import com.example.mbf.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.TextView;
public class Eticorporate extends Activity {
protected void onCreate(Bundle Bundle)
{
super.onCreate(Bundle);
setContentView(R.layout.eti_corporate);
((CheckBox)findViewById(R.id.cRoam)).setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
if (((CheckBox)v).isChecked())
{
this.tbDataroam.setEnabled(true);
this.bIntroam.setEnabled(true);
this.dataroam.setEnabled(true);
return;
}
this.tbDataroam.setEnabled(false);
this.bIntroam.setEnabled(false);
this.dataroam.setEnabled(false);
}
});
这是XML
<CheckBox
android:id="@+id/cRoam"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@id/datalocal"
android:layout_marginTop="5.0dip"
android:checked="false"
android:onClick="onCheckboxClicked"
android:text="@string/checkroam" />
<TextView
android:id="@+id/dataroam"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@id/datalocal"
android:layout_below="@+id/bIntroam"
android:layout_marginTop="18.0dip"
android:enabled="false"
android:text="@string/data_roam"
android:textAppearance="?android:textAppearanceMedium" />
<ToggleButton
android:id="@+id/tbDataroam"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/bIntroam"
android:layout_marginTop="7.0dip"
android:layout_toRightOf="@id/nationalmins"
android:enabled="false"
android:text="@string/data_roam" />
<Button
android:id="@+id/bIntroam"
android:layout_width="250.0dip"
android:layout_height="50.0dip"
android:layout_alignRight="@id/bundle"
android:layout_below="@id/cRoam"
android:enabled="false"
android:text="@string/int_roam" />
我知道这可能是一个简单的事情,但我只是不能想出办法来的。
感谢,
答
我会建议使用OnCheckedChangeListener
代替。
应该是这样的:
((CheckBox)findViewById(R.id.cRoam)).setOnCheckedChangeListener(new OnCheckedChangeListener()
{
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
if (isChecked)
{
this.tbDataroam.setEnabled(true);
this.bIntroam.setEnabled(true);
this.dataroam.setEnabled(true);
return;
}
this.tbDataroam.setEnabled(false);
this.bIntroam.setEnabled(false);
this.dataroam.setEnabled(false);
}
});
编辑:
您需要之前获得这些3个部件引用您尝试访问它们:
ToggleButton tbDataroam = (ToggleButton) findViewById(R.id.tbDataroam);
重复的其他2个部件...
问题是它找不到this.tbdataroam。它正在努力实施它。 – 2013-03-06 17:45:04
那么你需要获得你想要访问的小部件的参考......我将编辑我的帖子。 – 2013-03-06 17:46:13
非常感谢您的帮助。 – 2013-03-06 18:08:19