Первая кнопка Toggle не оказывает влияния на вторую - PullRequest
4 голосов
/ 04 октября 2011

У меня небольшая проблема, и теперь я работаю с кнопкой переключения, и первая кнопка предназначена для индикации дня или ночи, а вторая кнопка предназначена для индикации включения или выключения света. Тогда мое требование состоит в том, что, когда наступает день, вторая кнопка переключения не должна работать, а затем, когда наступает ночь, вторая кнопка переключения должна работать, и это должно указывать на то, включены ли огни. И мой код

final ToggleButton tb = (ToggleButton) findViewById(R.id.togglebutton);
       tb.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
Toast.makeText(getBaseContext(),
"Button is "+tb.getText().toString(),
Toast.LENGTH_LONG).show();
if(tb.getText().toString().equals("ON"))
{
final ToggleButton tb1= (ToggleButton) findViewById(R.id.togglebutton1);
tb1.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
Toast.makeText(getBaseContext(),
"Button is "+tb1.getText().toString(),
Toast.LENGTH_LONG).show();
}});
}
else
{
Toast.makeText(screen4.this,"It is day" , Toast.LENGTH_LONG).show();
finish();
}
                       }
       });

Может ли кто-нибудь помочь мне сделать так, чтобы вторая кнопка не работала, когда первая кнопка выключена. Заранее спасибо

Ответы [ 2 ]

2 голосов
/ 04 октября 2011

Это сработало для меня:

    <ToggleButton android:id="@+id/togglebutton"
android:layout_width="150px"
android:layout_height="50px"
android:textOn="DAY"
android:textOff="NIGHT" />
       <ToggleButton android:id="@+id/togglebuttontwo"
android:layout_width="150px"
android:layout_height="50px"
android:textOn="ON"
android:textOff="OFF" />

Код:

        final ToggleButton tb = (ToggleButton) findViewById(R.id.togglebutton);
    tb.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            Toast.makeText(getBaseContext(),
                    "Button is " + tb.getText().toString(),
                    Toast.LENGTH_LONG).show();
            ToggleButton tbtwo = (ToggleButton) findViewById(R.id.togglebuttontwo);

            if(tb.getText().equals("DAY"))
            {
                tbtwo.setEnabled(false);
            }
            else
                tbtwo.setEnabled(true);
        }
    });

enter image description here

1 голос
/ 04 октября 2011

попробуйте это.

final ToggleButton tb = (ToggleButton) findViewById(R.id.togglebutton);
       tb.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
Toast.makeText(getBaseContext(),
"Button is "+tb.getText().toString(),
Toast.LENGTH_LONG).show();
if(tb.getText().toString().equals("ON"))
{
final ToggleButton tb1= (ToggleButton) findViewById(R.id.togglebutton1);
tb1.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
Toast.makeText(getBaseContext(),
"Button is "+tb1.getText().toString(),
Toast.LENGTH_LONG).show();
}});
}
else
{
Toast.makeText(screen4.this,"It is day" , Toast.LENGTH_LONG).show();
final ToggleButton tb1= (ToggleButton) findViewById(R.id.togglebutton1);
tb1.setEnabled(false);
finish();
}
                       }
       });

ваш код работает не так, как вы хотите, потому что вы получаете ссылку на toggleButton в ночное время и устанавливаете его onClickListener, но в другом случае вы ничего не делаете, в этом случае android обеспечит поведение по умолчанию единственная причина. так что в другом состоянии либо отключите его, либо сделайте так, чтобы он не переключался или что-то в этом роде

...