Android-Radio-Button Nicht Aktiviert

Ich bin das hinzufügen von drei radio-buttons in meiner xml-Datei. jeder radio-button in separaten LinearLayout aber den gleichen xml. Erstens weiß ich nicht, wie Sie radiogroup, während Sie in separaten LinearLayouts. zweitens schrieb ich den folgenden code zu überprüfen, nur ein radio-button. Aber das wird nicht funktionieren. Bitte lassen Sie mich wissen, wie soll ich Vorgehen und wenn es eine bessere Lösung. Hier ist der code.

RadioButton screenof;
RadioButton screenof3;
RadioButton onexit;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.settings);
    screenof = (RadioButton)findViewById(R.id.radioscreenof);
    screenof.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if(!screenof.isChecked())
            {
                screenof.setChecked(true);
                screenof3.setChecked(false);
                onexit.setChecked(false);
            }
        }
    });
    screenof3 = (RadioButton)findViewById(R.id.radioscreenof3);
    screenof3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if(!screenof3.isChecked())
            {
                screenof3.setChecked(true);
                screenof.setChecked(false);
                onexit.setChecked(false);
            }
        }
    });
    onexit = (RadioButton)findViewById(R.id.radiolockimmediately);
    onexit.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if(!onexit.isChecked())
            {
                screenof3.setChecked(false);
                screenof.setChecked(false);
                onexit.setChecked(true);
            }
        }
    });
}

Hier ist die xml-Datei

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:layout_weight="1"
    android:background="@color/widgetcolor"
    >

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:layout_margin="1dp"
        android:background="@color/deactiveTexts"
        android:clickable="false"
        android:layout_weight="1"

        >

        <TextView
            android:text="Lock Mode"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="17dp"
            android:layout_weight="1"
            android:textStyle="bold" />
    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:layout_margin="1dp"
        android:background="@color/colorAccent"
        android:layout_weight="1"
        android:id="@+id/lockscreenof"

        >

        <TextView
            android:text="Lock apps at screen off"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/textView2"
            android:textSize="17dp"
            android:layout_weight="1"
            android:textStyle="bold" />

        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/radioscreenof"
            android:layout_weight="1"
            android:paddingRight="30dp"
            app:buttonTint="@android:color/holo_green_dark"
            android:elevation="0dp"
            android:duplicateParentState="false"
            android:checked="false"
            />
    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:layout_margin="1dp"
        android:background="@color/colorAccent"
        android:layout_weight="1"
        android:id="@+id/lockscreenof3"
        >

        <TextView
            android:text="Lock apps after screen of for 3 minutes"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/textView3"
            android:textSize="17dp"
            android:layout_weight="1"
            android:textStyle="bold" />

        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/radioscreenof3"
            android:layout_weight="1"
            android:paddingRight="30dp"
            app:buttonTint="@android:color/holo_green_dark" />
    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:layout_margin="1dp"
        android:background="@color/colorAccent"
        android:layout_weight="1"
        android:id="@+id/lockimmediately"
        >

        <TextView
            android:text="Lock apps immediately upon exit"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/textView1"
            android:textSize="17dp"
            android:layout_weight="1"
            android:textStyle="bold" />

        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/radiolockimmediately"
            android:layout_weight="1"
            android:paddingRight="30dp"
            app:buttonTint="@android:color/holo_green_dark" />
    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:layout_margin="1dp"
        android:background="@color/colorAccent"
        android:id="@+id/passonce"
        android:layout_weight="1"
        >

        <TextView
            android:text="Enter password once to unlock all apps"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/textView4"
            android:textSize="17dp"
            android:layout_weight="1"
            android:textStyle="bold" />

        <CheckBox
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/checkpassonce"
            android:layout_weight="1"
            android:paddingRight="30dp"
            app:buttonTint="@android:color/holo_green_dark" />
    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:layout_margin="1dp"
        android:background="@color/colorAccent"
        android:id="@+id/displayhint"
        android:layout_weight="1"
        >

        <TextView
            android:text="Display lock mode hint"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/textView5"
            android:textSize="17dp"
            android:layout_weight="1"
            android:textStyle="bold" />

        <CheckBox
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/checkhint"
            android:layout_weight="1"
            android:paddingRight="30dp"
            app:buttonTint="@android:color/holo_green_dark"
            android:checked="false" />
    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:layout_margin="1dp"
        android:background="@color/deactiveTexts"
        android:clickable="false"
        android:layout_weight="1"
        >

        <TextView
            android:text="Password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/textView6"
            android:textSize="17dp"
            android:layout_weight="1"
            android:textStyle="bold" />
    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:layout_margin="1dp"
        android:background="@color/colorAccent"
        android:clickable="true"
        android:id="@+id/changepass"
        android:layout_weight="1"
        >

        <TextView
            android:text="Change password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="17dp"
            android:layout_weight="1"
            android:textStyle="bold" />
    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:layout_margin="1dp"
        android:background="@color/colorAccent"
        android:id="@+id/invisiblepattern"
        android:layout_weight="1"
        >

        <TextView
            android:text="Invisible Pattern"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="17dp"
            android:layout_weight="1"
            android:textStyle="bold" />

        <CheckBox
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/checkpatinvisible"
            android:layout_weight="1"
            android:paddingRight="30dp"
            app:buttonTint="@android:color/holo_green_dark" />
    </LinearLayout>

</LinearLayout>

Bearbeitete ich den code eingefügt und deinen code, aber bei mir lief der code gab es unerwartete Ergebnisse. Ich legte die print-Anweisungen, und hier ist, was es gedruckt wird. Ich klickte auf die Tasten oben – unten einmal.

Case 1
Case 1
Case 2
Case 2
Case 1
Case 2
Case 3
InformationsquelleAutor Mahrukh Raza | 2016-12-17



3 Replies
  1. 3

    Können Sie tun dies durch die Implementierung OnCheckedChangeListener

    versuchen Sie folgenden code, es wird für Sie arbeiten-

    screenof= (RadioButton) findViewById(R.id.radioscreenof);
    screenof.setOnCheckedChangeListener(quest1);
    screenof3= (RadioButton) findViewById(R.id.radioscreenof3);
    screenof3.setOnCheckedChangeListener(quest1);
    onExit= (RadioButton) findViewById(R.id.radiolockimmediately);
    onExit.setOnCheckedChangeListener(quest1);
    
    CompoundButton.OnCheckedChangeListener quest1 = new CompoundButton.OnCheckedChangeListener() {
    
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            switch (buttonView.getId()) {
                case R.id.radioscreenof:
                    radioscreenof.setChecked(true);
                    radioscreenof3.setChecked(false);
                    onnExit.setChecked(false);
                    break;
    
                case R.id.radioscreenof3:
                    radioscreenof.setChecked(false);
                    radioscreenof3.setChecked(true);
                    onnExit.setChecked(false);
                    break;
                case R.id.onExit:
                    radioscreenof.setChecked(false);
                    radioscreenof3.setChecked(false);
                    onExit.setChecked(true);              
            }
        }
    };
    • Funktioniert immer noch nicht. Ich legte die print-Anweisungen und klickte auf jeden RadioButton-und das ist, worauf es gedruckt ist „System.aus: Fall 1-System.aus: Fall 1-System.aus: Fall 2-System.aus: Fall 2-System.aus: Fall 1-System.aus: Fall 2-System.aus: Fall 3
  2. 0

    verwenden Sie dieses layout:

        <?xml version="1.0" encoding="utf-8"?>
    <RadioGroup
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:gravity="left"
        android:layout_margin="25dp"
        android:background="#FF0"
        android:paddingRight="50dp"
        >
    
        <RadioButton
            android:id="@+id/radioscreenof"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Lock apps at screen off"
            android:onClick="onRadioButtonClicked"
            />
        <RadioButton
            android:id="@+id/radioscreenof3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Lock apps after screen of for 3 minutes"
            android:onClick="onRadioButtonClicked"
            />
        <RadioButton
            android:id="@+id/radiolockimmediately"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Lock apps immediately upon exit"
            android:onClick="onRadioButtonClicked"
            />
    
    </RadioGroup>

    dann für die Klick-listener zuerst deaktivieren Sie alle Kontrollkästchen für die radiogroup

    //reference radiogroup ID from layout file
    radiogroup.clearCheck();

    setup ein checkedchange listener für die radiogroup

    radiogroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
    
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
               Log.d("chk", "id" + checkedId);
    
                if (checkedId == R.id.a) {
                    //R.id.a = RadioButton ID in layout
                    //some code
                } else if (checkedId == R.id.b) {
                    //some code
                }
    
            }
    
        });

    können Sie programetically Feuer Hörer auf radioButton auch..

     rb = (RadioButton) view.findViewById(R.id.a);
     rb.setChecked(true);
  3. 0

    Versuchen Sie dies:

    screenof= (RadioButton) findViewById(R.id.radioscreenof);
    screenof.setOnCheckedChangeListener(quest1);
    screenof3= (RadioButton) findViewById(R.id.radioscreenof3);
    screenof3.setOnCheckedChangeListener(quest1);
    onExit= (RadioButton) findViewById(R.id.radiolockimmediately);
    onExit.setOnCheckedChangeListener(quest1);
    
    CompoundButton.OnCheckedChangeListener quest1 = new CompoundButton.OnCheckedChangeListener() {
    
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            switch (buttonView.getId()) {
                case R.id.radioscreenof:
                    radioscreenof.setChecked(true);
                    radioscreenof3.setChecked(false);
                    onnExit.setChecked(false);
                    break;
    
                case R.id.radioscreenof3:
                    radioscreenof.setChecked(false);
                    radioscreenof3.setChecked(true);
                    onnExit.setChecked(false);
                    break;
                case R.id.radiolockimmediately:
                    radioscreenof.setChecked(false);
                    radioscreenof3.setChecked(false);
                    onExit.setChecked(true);              
            }
        }
    };

    dies ist @Amit Antwort, die ich gerade ersetzt R. id.onExit mit R. id.radiolockimmediately in onCheckedChanged

    (Ich kann nicht kommentieren, also musste ich zur post eine neue Antwort)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.