Estoy tratando de implementar el código de reconocimiento de voz en Android. ¿Cómo obtengo un elemento en una posición particular de la lista de arreglos en Android? Traté de convertir arraylist
a array
y recuperar. Aún así el código no está funcionando.Recuperando un elemento de la lista de arreglos en Android?
package com.espeaker;
public class EspeakerActivity extends Activity {
private static final int REQUEST_CODE = 1234;
private ListView wordsList;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button speakButton = (Button) findViewById(R.id.speakButton);
wordsList = (ListView) findViewById(R.id.list);
// Disable button if no recognition service is present
PackageManager pm = getPackageManager();
List<ResolveInfo> activities = pm.queryIntentActivities(
new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0);
if (activities.size() == 0)
{
speakButton.setEnabled(false);
speakButton.setText("Recognizer not present");
}
}
/**
* Handle the action of the button being clicked
*/
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 wordsList with the String values the recognition engine thought it heard
ArrayList<String> matches = data.getStringArrayListExtra(
RecognizerIntent.EXTRA_RESULTS);
wordsList.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,
matches));
String[] array=matches.toArray(new String[matches.size()]);
// ArrayList<String> places = new ArrayList<String>(
// Arrays.asList("black", "blue", "red"));
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item,matches);
final AutoCompleteTextView input_text = (AutoCompleteTextView) findViewById(R.id.auto);
Button button1 = (Button) findViewById(R.id.button1);
input_text.setAdapter(adapter);
button1.setText(" "+array[0]);
// button1.setText(""+matches);
}
super.onActivityResult(requestCode, resultCode, data);
}
}
podría haber hecho el código mucho más simple en lugar de publicar el código "real". – Rakesh