RadioGroup Fehler

  • Antworten:13
Andy
  • Forum-Beiträge: 27

05.12.2012, 10:59:27 via Website

Guten Tag,

ich stehe wieder von einem Problem und noch keine Lösung gefunden :( Ich habe eine Radiogrop aus 2 Radio Buttons. Neben dem zweiten RadioButton ist ein Button der zuerst Unsichtbar ist, da der erste RadioButton aktiviert ist. Wenn ich den zweiten RadioButton aktiviere kommt der Button zum Vorschein. Wenn sich aber die Lage meines Handys änderet (von Hoch in Querformat und umgekehrt), ist der Button unsichtbar, obwohl der zweite RadioButton aktiviert ist. Ich habe schon viele sachen ausprobiert bei RadioButton und RadioGroup Eigenschaften, ber immer ist der Erste „ausgewählt“, obwohl der auswahlpunkt bei dem zweitem Button ist. Wie kann ich dieses Problem lösen? Vielen Dank im Voraus.

Gruß

— geändert am 05.12.2012, 11:00:50

Antworten
Andy
  • Forum-Beiträge: 27

07.12.2012, 10:06:24 via Website

Hat niemand eine Idee? :(

Antworten
Andy
  • Forum-Beiträge: 27

07.12.2012, 11:30:25 via Website

Also ich habe schon paar Eigenschaftes ausgelesen, das zweite RadioButton ist ausgewählt, trotzdem liefern diese Methoden:
isFocused()
isChecked()
isSelected()

immer false. Mit welcher Methode Kann ich diesen grünen Punkt auslesen? Auch auslesen der Group sagt, dass der erste Element ausgewählt ist, obwohl im Layout der zweite ist. Ich verstehe es nicht. Auch Layout neue laden bring nichts. 

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

07.12.2012, 11:59:55 via Website

Auslesen des selektierten Buttons:
RadioGroup r = (RadioGroup)v.findViewById(R.id.rgruppe);
int i = r.getCheckedRadioButtonId();

Antworten
Andy
  • Forum-Beiträge: 27

07.12.2012, 12:45:36 via Website

Das habe ich auch gemacht, wird immer die ID des erstes Elementes zurückgegebene, obwohl der Punkt beim zweiten ist.

Gruß

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

07.12.2012, 13:20:43 via Website

Dann liegt dein Problem irgendwo anders; der angegebene Code funktioniert bei ordnungsgemäßer Anwendung genau wie er soll.

Antworten
Andy
  • Forum-Beiträge: 27

07.12.2012, 13:37:22 via Website

Ja der Code funktioniert bis ich das Handy drehe, dann wird der Layout neue geladen. d.h. der erste Button ist aktive aber igwie ist der zweit ausgewählt ^^

Antworten
Andy
  • Forum-Beiträge: 27

07.12.2012, 13:53:56 via Website

Hier ist mein Code:

Activity:
public class MainActivity extends Activity {

Button button;
RadioGroup rGroupe;
RadioButton r1;
RadioButton r2;

@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.activity_main);

this.button = (Button) this.findViewById(R.id.button1);
this.rGroupe = (RadioGroup) this.findViewById(R.id.rG);
this.r1 = (RadioButton) this.findViewById(R.id.r1);
this.r1.setOnClickListener(this.onCL);
this.r2 = (RadioButton) this.findViewById(R.id.r2);
this.r2.setOnClickListener(this.onCL);

}

final OnClickListener onCL = new OnClickListener() {

@Override
public void onClick(final View view) {

switch (view.getId()) {
case R.id.r1:
MainActivity.this.button.setVisibility(4); // Invisible
break;
case R.id.r2:
MainActivity.this.button.setVisibility(0); // Visible
break;
default:
break;
}

}
};
}

Layout:

android:id="@+id/b1"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >

<RadioGroup
android:id="@+id/rG"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="40dp"
android:layout_weight="2.28" >

<RadioButton
android:id="@+id/r1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="1" />

<RadioButton
android:id="@+id/r2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="false"
android:text="2" />
</RadioGroup>

<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/RGROUp"
android:layout_centerHorizontal="true"
android:text="Button"
android:visibility="invisible" />

</RelativeLayout>

so wenn ich die 2 auswähle und mein Handy drehe verschwindet der Button, obwohl die 2 ausgewählt ist.

Antworten
Andy
  • Forum-Beiträge: 27

07.12.2012, 15:27:44 via Website

Vllt ist es ein Bug in Android und bis jetzt keiner drauf gekommen ist ? 8o

Antworten
Gelöschter Account
  • Forum-Beiträge: 694

07.12.2012, 16:59:56 via App

Andy
anso wenn ich die 2 auswähle und mein Handy drehe verschwindet der Button, obwohl die 2 ausgewählt ist.

* Weil beim Drehen die Activity neu gestartet wird ...

* ... und dadurch onCreate neu ausgeführt wird ...

* ... und dadurch das Layout neu geladen wird ...

* ... und dadurch Dein explizites checked=true beim ersten Element ausgeführt wird?

Antworten
Andy
  • Forum-Beiträge: 27

08.12.2012, 09:19:26 via Website

Vielen Dank, dass mit dem Lebenszyklus war mir bekannt. ich habe Status durch log.i in jeder Funktion ausgegeben. Ich habe habe auch gewusst dass nach ondestroy und oncreate aufgeruffen wird und dort wird ja Layout neue gesetzt so weit ist alles gut ... meine Frage ist wieso ist der zweite Punkt ausgewählt ist obwohl es der erste sein soll? Layout wid neue gezeichnet für Aktivity dann muss der erste aisgewahlt sein, der zweite wird angezeigt ... wie mache ich es das beim undrehen immer der erste ausgewahlt bleibt?

Antworten
Andy
  • Forum-Beiträge: 27

09.12.2012, 17:37:33 via Website

Hat nieman eine Idee ? :( ist ganz blöder Fall :(

Antworten
Andy
  • Forum-Beiträge: 27

10.12.2012, 13:36:48 via Website

[quote=Harald Wilhelm]
Andy


* ... und dadurch Dein explizites checked=true beim ersten Element ausgeführt wird?

Ich will es ja, dass der erste Element ausgewählt ist. Es wird auch ausgewählt nur im Layout ist es der zweite.

Antworten
Andy
  • Forum-Beiträge: 27

11.12.2012, 16:57:27 via Website

Scheint niemand eine Idee zu haben. :( ... Bug ???

Antworten