2012-03-14 35 views
5

estoy tratando de recuperar el valor spinner seleccionado y utilizado el códigoRecuperando el elemento seleccionado de la ruleta?

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { 
     Object item = parent.getItemAtPosition(pos); 
    } 
    public void onNothingSelected(AdapterView<?> parent) { 
    } 
}); 

siguiente, pero no puedo usar el valor del elemento fuera de la función! Soy muy nuevo en java por favor, que alguien me ayude .. i tratado de implementar el reconocimiento de voz en Android

 public void speakButtonClicked(View v) 
        { 
         startVoiceRecognitionActivity(); 
        } 

        /** 
        * Fire an intent to start the voice recognition activity. 
        */ 
        private void startVoiceRecognitionActivity() 
        { 
         Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); 
         intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, 
         RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); 


intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Voice recognition Demo..."); 
        startActivityForResult(intent, REQUEST_CODE); 
       } 

       /** 
       * Handle the results from the voice recognition activity. 
       */ 
       @Override 
      protected 
       void onActivityResult(int requestCode, int resultCode, Intent data) 
       { 


        if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) 
        { 
         // Populate the spinner with the String values the recognition engine thought it heard 

         ArrayList<String> matches = data.getStringArrayListExtra(
           RecognizerIntent.EXTRA_RESULTS); 
         final Button button12=(Button)findViewById(R.id.button12); 

         final Spinner Speech_spinner=(Spinner)findViewById(R.id.spinner3);   


        Speech_spinner.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, 
           matches)); 
        Speech_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
         public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { 
          Text = parent.getItemAtPosition(pos).toString(); 

         } 
         public void onNothingSelected(AdapterView<?> parent) { 
         } 
        }); 

         button12.setText(Text); 




         } 
        super.onActivityResult(requestCode, resultCode, data); 


       } 

No se recibe valor en button12

Respuesta

1

tema objeto de declarar fuera de la alcrear de modo que está disponible para toda la clase.

1
class Myactivity ...{ 

Object item ; 

oncreate(...){ 
    ... 

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { 
     item = parent.getItemAtPosition(pos); 
    } 
    public void onNothingSelected(AdapterView<?> parent) { 
    } 
}); 
} 
} 
+0

cuando utilicé el final, está mostrando un modificador no válido. He utilizado el control giratorio dentro de una función en mi clase principal – user1186739

+0

¿Puede decirme en qué método desea lo que desea con el control giratorio? –

+0

implementar el reconocimiento de voz de google en mi proyecto ... así que la salida de recognizor quería estar dentro del rotor. He editado la pregunta/por favor chekout la función – user1186739

1

utilizar el valor pos como un índice de la matriz que haya agregado al adaptador y conseguir que el valor o

spnproj.setAdapter(new ArrayAdapter<String>(PaymentDetail.this, android.R.layout.simple_spinner_item,arr));  
    spnproj.setOnItemSelectedListener(new OnItemSelectedListener() { 

     @Override 
     public void onItemSelected(AdapterView<?> arg0, View arg1, 
       int arg2, long arg3) { 

String value =arr[arg2]; 
2

uso objeto final como:

final Object item; 

fuera del onCreate

1

Paso 1. Si ha agregado una ruleta estáticamente, entonces use Spinner spin=(Spinner)findViewById(R.id.spinner); o dinámica que se puede utilizar como Spinner spin=new Spinner(YourActivity.this)

artículos Paso 2.Add en la matriz para mostrar

array_spinner=new String[4]; 
array_spinner[0]="BFT"; 
array_spinner[1]="GFP"; 
array_spinner[2]="FSS"; 
array_spinner[3]="others"; 

Paso 3.Select cualquier elemento de la ruleta

ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item, array_spinner); 
     spin.setAdapter(adapter); 

Paso 4. Obtener el valor del valor seleccionado como

String anyvariable=String.valueOf(spin.getSelectedItem()); 
+0

quiero usar el elemento seleccionado – user1186739

+0

Puede obtener el valor del seleccionado elemento como String anyvar = String.valueOf (spin.getSelectedItem()); –

1

Si no va a utilizarlo cuando el usuario lo haya seleccionado, es decir, llamar a un método en su onItemSelectedspinner.getSelectedItem()

como esto en su código:

... 
//get object to use 
Object myObj = spinner.getSelectedItem(); 
// use object. 

definen De lo contrario el objeto fuera de su OnItemSelectedListener como las otras respuestas.

Cuestiones relacionadas