我正在开发一个用于文本语音识别的小程序,问题是语音识别正在填充listView,这很好,现在我想用单击的ListView项目的内容填充EditText: 我的代码:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == VOICE_RECOGNITION_REQUEST_CODE)
if(resultCode == RESULT_OK) {
ArrayList<String> textMatchList = data
.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
if (!textMatchList.isEmpty()) {
mlvTextMatches.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,
textMatchList));
}
}
mlvTextMatches.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id){
//Not Sure what to do here!
EditText InputText = (EditText) findViewById(R.id.inptWord);
}
});
super.onActivityResult(requestCode, resultCode, data);
}`
有什么想法吗?
最佳答案
将 textMatchList
设为成员变量:
ArrayList<String> textMatchList = new ArrayList<String>();
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == VOICE_RECOGNITION_REQUEST_CODE)
if(resultCode == RESULT_OK) {
textMatchList = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
...
...
mlvTextMatches.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id){
EditText InputText = (EditText) findViewById(R.id.inptWord);
InputText.setText(textMatchList.get(position));
}
});
}
onItemClick
方法的 position
参数表示单击的列表项的位置。
关于java - android Listview onItemClick填充EditText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34033882/