2013-03-06 2 views
0

У меня проблема с флажком. Я пытаюсь вычеркнуть текст, если флажок не отмечен, но я не могу этого сделать. Я сделал это раньше, но забыл, и мой код вроде бы перепутался, я не сохранил его копию.checkbox to gray out text

это 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

Я бы рекомендовал использовать 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); 
    } 
}); 

EDIT:

Вы должны получить ссылки на эти 3 виджетов , прежде чем вы пытаетесь получить доступ к ним:

ToggleButton tbDataroam = (ToggleButton) findViewById(R.id.tbDataroam); 

Repeat для другие 2 виджета ...

+0

проблема в том, что она не может найти this.tbdataroam. он пытается ее реализовать. –

+0

Ну, вам нужно получить ссылку на виджеты, к которым вы пытаетесь получить доступ ... Я отредактирую свой пост. –

+0

благодарит за помощь. –

Смежные вопросы