1

我只需要显示来自的第一个条目Arraylist

我下面的代码显示了所有结果,但我只需要列表中的第一个条目。

wordsListListView

ArrayList <<String>> matches = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);

wordsList.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,matches));

完整的方法代码:

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.get(0)));
    }
}
4

3 回答 3

0

由于您只需要第一个元素,因此ArrayList<String> matches您只需要创建一个新List<String>元素并将第一个元素添加到新元素List

然后将新List的用于Adapter.

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);

        if (matches.size() > 0) {
            List<String> oneMatch = new ArrayList<String>();
            oneMatch.add(matches.get(0));

            wordsList.setAdapter(
                new ArrayAdapter<String>(
                     this, android.R.layout.simple_list_item_1, oneMatch));
        } else {
            Log.e(TAG, "Matches does not contain any values.");
        }
    }
}
于 2012-08-08T19:36:47.517 回答
0

如果您试图获取第一个元素,ArrayList那么您需要使用get(int)ArrayList 类的方法。因此,在您的情况下,您matches.get(0)将获得matches ArrayList. 请澄清“第一数据”的含义,以便我可以提供最佳答案。

于 2012-08-08T19:39:23.993 回答
0

如果您只想显示第一项,请执行以下操作:

ArrayList <<String>> matches = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);

wordsList.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,matches.get(0)));

将其更改为matches.get(0)仅将列表中的第一个 String 对象传递给您的适配器。很难说你在做什么,因为只有一个项目的适配器似乎效率低下。

于 2012-08-08T19:42:25.940 回答