Autore Topic: visualizzare l'elemento selezionato in radiogruop  (Letto 1241 volte)

Offline softmystery

  • Utente junior
  • **
  • Post: 105
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg optimus one
  • Sistema operativo:
    2.2
visualizzare l'elemento selezionato in radiogruop
« il: 14 Febbraio 2011, 10:52:32 CET »
0
salve ragazzi! nella mia app vorrei fare una serie di domande. Dato che una sola sarà la risposta giusta, devo usare i radiobutton.
Guardando le api demos c'è un radiogruop, dove visualizza l'id dell'elemento cliccato.
ho provato a fargli visualizzare l'elemento stringa non la sua id... ma non ho trovato un metodo che lo faccia fare. sono io che non ho, capito bene,oppure non si può proprio visualizzare l'elemento selezionato?
ovviamente prima di postare mi son studiato questo : http://developer.android.com/reference/android/widget/RadioGroup.html[/url]

comunque ecco i codici:
main.java che comprende la gestione del radiogroup
Codice (Java): [Seleziona]
import android.app.Activity;
import android.os.Bundle;

import android.view.View;
import android.widget.TextView;
import android.widget.RadioGroup;
import android.widget.Button;



public class main extends Activity implements RadioGroup.OnCheckedChangeListener,
        View.OnClickListener {

    private TextView mChoice;
    private RadioGroup mRadioGroup;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.radio_group);
        mRadioGroup = (RadioGroup) findViewById(R.id.menu);

        // test adding a radio button programmatically
       /* RadioButton newRadioButton = new RadioButton(this);
        //newRadioButton.setText("scegli");
        newRadioButton.setId(R.id.risposta1);
        LinearLayout.LayoutParams layoutParams = new RadioGroup.LayoutParams(
                RadioGroup.LayoutParams.WRAP_CONTENT,
                RadioGroup.LayoutParams.WRAP_CONTENT);
        mRadioGroup.addView(newRadioButton, 0, layoutParams);*/


        // test listening to checked change events
        //visualizza in default all'apertura del radiogroup una selezione predefinita, ovvero il primo radio
      String selection = getString(R.string.radio_group_selection);
        mRadioGroup.setOnCheckedChangeListener(this);
        mChoice = (TextView) findViewById(R.id.scelta);
        mChoice.setText(selection + " "+mRadioGroup.getCheckedRadioButtonId());

        // test clearing the selection
        Button clearButton = (Button) findViewById(R.id.cancella);
        clearButton.setOnClickListener(this);
    }

    public void onCheckedChanged(RadioGroup group, int checkedId) {
        //Log.i(null, group.check(checkedId));
    //  String stringa_selezionata= new String();
        String selection = getString(R.string.radio_group_selection);
        String none = getString(R.string.radio_group_none);
        mChoice.setText(selection +
                (checkedId == View.NO_ID ? none : checkedId));
    }

    public void onClick(View v) {
        mRadioGroup.clearCheck();
    }
}

radiogroup.xml
Codice (XML): [Seleziona]
<LinearLayout xmlns:android="[url]http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:orientation="vertical">
    <RadioGroup
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:orientation="vertical"
       android:checkedButton="@+id/lunch"
       android:id="@+id/menu">
        <RadioButton
           android:text="risposta1"
           android:id="@+id/risposta1"
           />
        <RadioButton
           android:text="risposta2"
           android:id="@+id/risposta2" />
        <RadioButton
           android:text="risposta3"
           android:id="@+id/risposta3" />
        <RadioButton
           android:text="risposta4"
           android:id="@+id/risposta4" />
        <TextView
           android:text="selezionato: niente"
           android:id="@+id/scelta" />
    </RadioGroup>
    <Button
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="cancella"
       android:id="@+id/cancella" />
</LinearLayout>

Offline softmystery

  • Utente junior
  • **
  • Post: 105
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg optimus one
  • Sistema operativo:
    2.2
Re:visualizzare l'elemento selezionato in radiogruop
« Risposta #1 il: 14 Febbraio 2011, 11:39:21 CET »
0
un'altra cosa inerente ai radiobutton ma che credo venga fatto anche in altri contesti:
Codice (Java): [Seleziona]
// test adding a radio button programmatically
        RadioButton newRadioButton = new RadioButton(this);
        newRadioButton.setText("scegli");
        newRadioButton.setId(R.id.risposta1);
in questo codice in pratica, si crea un nuovo radiobutton, che non c'è nel layout.xml....
ma se io lo scrivo così, senza mettere nel layout l'id risposta1, eclipse mi dà continuamente errore, perchè l'id non c'è nel R.java, che viene generato automaticamente.   
Se io affianco all'errore clicco su "create field "risposta1" in type "id".  lo creo, salvo, e me lo elimina!
come posso fare per non farmelo eliminare?
preciso che nelle apidemos, non dà problemi....

Offline softmystery

  • Utente junior
  • **
  • Post: 105
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg optimus one
  • Sistema operativo:
    2.2
Re:visualizzare l'elemento selezionato in radiogruop
« Risposta #2 il: 14 Febbraio 2011, 12:10:46 CET »
0
un'altra cosa inerente ai radiobutton ma che credo venga fatto anche in altri contesti:
Codice (Java): [Seleziona]
// test adding a radio button programmatically
        RadioButton newRadioButton = new RadioButton(this);
        newRadioButton.setText("scegli");
        newRadioButton.setId(R.id.risposta1);
in questo codice in pratica, si crea un nuovo radiobutton, che non c'è nel layout.xml....
ma se io lo scrivo così, senza mettere nel layout l'id risposta1, eclipse mi dà continuamente errore, perchè l'id non c'è nel R.java, che viene generato automaticamente.   
Se io affianco all'errore clicco su "create field "risposta1" in type "id".  lo creo, salvo, e me lo elimina!
come posso fare per non farmelo eliminare?
preciso che nelle apidemos, non dà problemi....

ok per questo c'è il file ids.xml da aggiungere nella cartelle res/values  che permette di specificare degli
Codice (XML): [Seleziona]
<resources><item type="id" name="risposta"/></resources>
per visualizzare il testo selezionato nel radiobutton... non ci riesco.....

Offline softmystery

  • Utente junior
  • **
  • Post: 105
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg optimus one
  • Sistema operativo:
    2.2
Re:visualizzare l'elemento selezionato in radiogruop
« Risposta #3 il: 15 Febbraio 2011, 12:42:02 CET »
0
uffy non riesco proprio a reperire il testo, dell'elemento selezionato!!!! non è che devo usare un listener un adapter....

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:visualizzare l'elemento selezionato in radiogruop
« Risposta #4 il: 15 Febbraio 2011, 13:01:43 CET »
+2
Per prima cosa non scrivere piú doppi, tripli o quadrupli post. Se devi aggiungere qualcosa modifica un singolo post.

Per quanto riguarda il tuo problema, non l'ho provato, ma dovrebbe funzionare:

Codice (Java): [Seleziona]
        RadioGroup rg = il tuo radiogroup
        RadioButton rb = (RadioButton) findViewById(rg.getCheckedRadioButtonId());
        rb.getText();
Postate il LogCat LogCat LogCat LogCat LogCat

Offline softmystery

  • Utente junior
  • **
  • Post: 105
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg optimus one
  • Sistema operativo:
    2.2
Re:visualizzare l'elemento selezionato in radiogruop
« Risposta #5 il: 15 Febbraio 2011, 20:08:24 CET »
0
ok, scusami non succederà più :(
comunque funziona grazie mille! :)