как программно изменить состояние коммутатора [Android] - PullRequest
0 голосов
/ 29 января 2019

Мне нужно переключить A и B. Я хочу, чтобы, когда бы я ни нажал на переключатель A, он изменит состояние B и наоборот.Как это сделать в Android студии?

Вот мой код свичей

    //first switch
        flw_Rate_switch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {


            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (isChecked) {

}...


//2nd switch
        lqd_followed_switch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (isChecked) {


}...

Ответы [ 2 ]

0 голосов
/ 31 января 2019

File-activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.hina.myapplication.MainActivity">


    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/container" >

            <Button
                android:id="@+id/on1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:text="ON" />

            <Button
                android:id="@+id/on2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_toRightOf="@+id/testbutton"
                android:text="OFF"/>
        </LinearLayout>

        <ListView android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:id="@+id/LstPeriodOptions"
            android:layout_alignParentTop="true"
            android:layout_above="@id/container" />

    </RelativeLayout>

</android.support.constraint.ConstraintLayout>

File-MainActivity.java

package com.example.hina.myapplication;
import android.app.Activity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import static com.example.hina.myapplication.R.id.on2;

public class MainActivity extends Activity implements View.OnClickListener {
    Button on1;
    Button off1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
         on1= (Button) findViewById(R.id.on1);
         off1= (Button) findViewById(on2);
        on1.setOnClickListener(this);
        off1.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        if (on1.isPressed()){
            on1.setEnabled(false);
            off1.setEnabled(true);
        }
        else if (off1.isPressed()){
            off1.setEnabled(false);
            on1.setEnabled(true);
        }

    }
}
0 голосов
/ 29 января 2019

Сначала вам нужно определить свои переключатели:

Switch a; // define your switch
Switch b;

Переключатели могут включать и выключать себя сами по щелчку, поэтому мы должны сказать им переключать другие:

a.setOnClickListener(
     new View.OnClickListener() {
         @Override
         public void onClick(View view) {
               b.setChecked(!b.isChecked);
         }
      });
b.setOnClickListener(
     new View.OnClickListener() {
         @Override
         public void onClick(View view) {
               a.setChecked(!a.isChecked);
         }
      });

В методе onClick мы сообщаем коммутатору, если пользователь щелкнул по нему, устанавливаем обратный статус проверки другого коммутатора, другими словами, мы сообщаем им, если другой выключен, включаем его и, если он включен, выключаем его.Это делает метод setChecked .И аргумент говорит обратное состояние переключателя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...