Auswahl mehrerer RadioButton in einem TextView ausgeben

S

Schtelloni

Neues Mitglied
2
Hallo,

da ich leider bislang viel Zeit für erfolglose Suche im Netz verbracht habe, hoffe ich hier eine Antwort zu finden.
Mein Problem:
In meiner App verwende ich RadioButton in einer RadioGroup. Das funktioniert auch tadellos.
Manchmal gibt es nur eine Group, in anderen Activitys aber 2,3 oder mehr verschiedene. Ich möchte die entsprechende Auswahl nicht nur anzeigen sondern sie auch in einem Textfeld ausgeben um sie dann per Button in das Clipboard kopieren zu können.
Steht nur eine Group zu Auswahl ist es ja noch recht einfach, aber gibt es mehrere komme ich nicht weiter.
Um es verständlicher zu machen:
In der RadioGroupH gibt es "H0" "H1" ausgewählt wird zB. "H1"
In der RadioGroupI gibt es "I0" "I1" ausgewählt wird zB. "I0"
In der Radio GroupP gibt es "P0" "P1" "P9" ausgewählt wird zB. "P9"

In dem Textfeld möchte ich stehe haben #H1I0P9# (inkl der Rauten), es soll auch funktionieren wenn zB bei I keine Auswahl erfolgt ist und dieser Text soll dann kopiert werden.

Was muss ich tun um zu diesem Ergebnis zu kommen??

Vielen Dank schon im voraus für Eure Hilfe
Stephan
 
Hallo,

Wo hakt es denn genau? Was hast du bist jetzt versucht?

Eigentlich ist das ja nur die Strings aneinander Reihen.

Gruß
 
Hast du dahingehend Probleme, dass du dir von der RadioGroup nur den Index liefern lassen kannst?

Versuch mal folgendes:
Code:
String radioButtonValue = ((RadioButton) findViewById(YourRadioGroup.getCheckedRadioButtonId())).getText().toString();

Wenn das bei dir funktioniert, kannst du es ja dementsprechend erweitern. Falls das auch einfacher geht würde ich mich gerne belehren lassen. :)
 
  • Danke
Reaktionen: Schtelloni und 123thomas
@Schtelloni Hast du mittlerweile dein Problem lösen können (und wie)?
 
Hallo lordzwieack,
danke der Nachfrage! Hatte leider nur wenig Zeit (wie immer :) )
Aber ich habe das was Du geschrieben hast probiert und so sieht es aus und klappt!!!

RadioButton selectedRadioButton = (RadioButton) findViewById(selectedRadioButtonID);
String selectedRadioButtonText = selectedRadioButton.getText().toString();
tv_result.setText("#" + selectedRadioButtonText + "#");

Allerdings bekomme ich die zweite oder dritte Buttonauswahl noch nicht zwischen die Rauten :-(
Und das kopieren in die Zwischenablage klappt bislang auch nur mit fertigen Strings die ich aufrufen kann. Ich muss ja irgendwie aus dem tv_result Text wieder einen String machen um ihn zu kopieren, aber das klappt noch nicht so.
Evtl. hast Du da ja auch noch einen Denkanstoß für mich...
Grüße
Stephan
 
Hallo,
du kannst einfach vorher ein string deklarieren.
Code:
string ausgewählteRadioButtons;
RadioButton selectedRadioButton = (RadioButton) findViewById(selectedRadioButtonID);
String selectedRadioButtonText = selectedRadioButton.getText().toString();
ausgewählteRadioButtons = "#" + selectedRadioButtonText + "#";
//ausgewählteRadioButtons in Zwischenablage kopieren
tv_result.setText(ausgewählteRadioButtons);

Und jetzt ist je nachdem, ob der Benutzer der App direkt alle auswählen muss einfach ein anfügen der anderen RadioButtons oder wenn es auch später ausgewählt werden kann muss mit einem Listener arbeiten.
RadioGroup.OnCheckedChangeListener | Android Developers
 
  • Danke
Reaktionen: Schtelloni und lordzwieback
Hallo 123thomas,

herzlichen Dank!!!! Jetzt geht´s.... hatte noch leichte Probleme mit dem Anfügen der Strings aber nun habe ich es am laufen :)
Jetzt nur noch das kopieren.... aber erst noch die anderen RadioButtons in den anderen Activitiys einfügen und dann geht es da weiter....

Euch beiden wirklich ganz herzlichen Dank!!!!!

Gruß
Stephan
 
  • Danke
Reaktionen: 123thomas und lordzwieback
Hallo zusammen,

könntet Ihr mal einen Blick auf die folgenden Zeilen werfen? Ich habe mich da total verdaddelt und weiß nicht wo es hakt.
Es sollen aus, in diesem Beispiel 2, RadioButtonGroups die Auswahlen in einem textView angezeigt werden. Das hatte ich auch schon eigentlich gelöst, dachte ich, und nun zeigt er mir den ersten Button nicht mehr an sondern schreibt null. (#nullN1#)
Was mache ich falsch? Das Ergebnis möchte ich dann ja mit dem Buttonklick in die Zwischenablage kopieren. Und nun geht das schon bei zwei möglichen Gruppen nicht und für diese Seite sind 4 vorgesehen.
Vielen Dank schon mal im voraus!!!!
Gruß
Stephan



package com.example.techniker.elvosa;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;






public class Wc78xxActivity extends AppCompatActivity {


Button btnCopytext78xx;
RadioGroup radioGroupK;
RadioGroup radioGroupN;
String selectedRadioButtonText;
String getSelectedRadioButtonTextN;
String getSelectedRadioButtonTextP;
String getSelectedRadioButtonTextQ;
String getSelectedRadioButtonTextV;

@override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_wc78xx);
//TextView textView;
//Button copyText;

Button btn = (Button) findViewById(R.id.btnCopytext78xx);
final TextView tv_result = (TextView) findViewById(R.id.tv_result78);

final RadioGroup rg = (RadioGroup) findViewById(R.id.radioGroupK);
btn.setOnClickListener(new View.OnClickListener() {
@override
public void onClick(View v) {

int selectedRadioButtonID = rg.getCheckedRadioButtonId();


if (selectedRadioButtonID != -1) {

RadioButton selectedRadioButton = (RadioButton) findViewById(selectedRadioButtonID);
String selectedRadioButtonText = selectedRadioButton.getText().toString();


}

}
});

final RadioGroup rgN = (RadioGroup) findViewById(R.id.radioGroupN);
btn.setOnClickListener(new View.OnClickListener() {
@override
public void onClick(View v) {

int selectedRadioButtonID = rgN.getCheckedRadioButtonId();


if (selectedRadioButtonID != -1) {

RadioButton selectedRadioButton2 = (RadioButton) findViewById(selectedRadioButtonID);
String selectedRadioButtonText2 = selectedRadioButton2.getText().toString();

tv_result.setText("#" + selectedRadioButtonText + selectedRadioButtonText2 + "#");
}
else{
tv_result.setText("Kein TAG ausgewählt!");
}
}
});
}




public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.tags_menu, menu);
return super.onCreateOptionsMenu(menu);
}

public boolean onOptionsItemSelected(MenuItem item) {
Intent intent = null;
switch (item.getItemId()) {

case R.id.menu_item_einstellungen:
intent = new Intent(this, EinstellungenActivity.class);
startActivity(intent);
return true;
case R.id.menu_item_beenden:
intent = new Intent(this, TagsActivity.class);
startActivity(intent);
finish();

default:
return super.onOptionsItemSelected(item);
}


}
}
 
Moin,

ich vermute mal es könnte deshalb nicht klappen, weil er durcheinander kommt, wenn du 2x einen OnClickListener auf dem gleichen Button (hier btn) hast.

EDIT: Außerdem ist mir nicht ganz klar, wie folgendes bei dir funktionieren soll:
Code:
RadioButton selectedRadioButton = (RadioButton) findViewById(selectedRadioButtonID);
Du speicherst die ID eines Radiobuttons, welche die Reihenfolge/Position dieses Buttons in der RadioGroup darstellt. Ebenso prüfst du vorher, ob diese ID -1 ist, alles gut soweit. Nur wieso du die ID in der obigen Zeile nutzt, um den View "zu kreieren", verstehe ich nicht. Aber vielleicht liege ich da ja falsch. Im Normalfall sollte da ja die ID eines UI-Elements rein, oder?
ID von UI-Element <> ID des Radiobuttons innerhalb einer RadioGroup (falls ich hier falsch liege möge mich bitte jemand belehren)

Ich würde mir an deiner Stelle nochmal den Tipp/Link von 123thomas anschauen (RadioGroup.OnCheckedChangeListener | Android Developers)
Die ChangeListener-Methode wird immer durchlaufen, wenn ein anderer Eintrag der jeweils "abgehorchten" RadioGroup ausgewählt wird. In diesem Listener setzt du dann deine Variable neu anhand der ID des RadioButtons und unterhalb der ChangeListener kommt 1x der btn.SetOnClickListener, um alle deine Strings zusammenzufügen und in die Zwischenablage zu kopieren.
 
Zuletzt bearbeitet:

Ähnliche Themen

Muecke1982
Antworten
8
Aufrufe
1.032
Skyhigh
Skyhigh
OnkelLon
Antworten
13
Aufrufe
1.973
OnkelLon
OnkelLon
Zurück
Oben Unten