我的复选框有问题。如果未勾选复选框但我无法执行此操作,我会尝试将某些文本灰显。我之前做过这个但是已经忘记了,我的代码有点搞砸了因为我没有保存它的副本。
这是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" />
我知道这可能是一件简单的事情,但我无法弄明白。
感谢,
答案 0 :(得分:0)
我建议改为使用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);
}
});
编辑:
在尝试访问之前,您需要获取对这三个小部件的引用:
ToggleButton tbDataroam = (ToggleButton) findViewById(R.id.tbDataroam);
重复其他2个小部件......