0

所以我有这个列表,它使用来自 ArrayList 的值(我不能使用 String[],因为用户必须将项目添加到列表中,而我不能 .add 到 String[])。但现在我遇到了 onItemClick 方法的问题。我想从选定的项目中获取文本,我的书说以下应该有效:

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
    dodaj.setText(values[arg2]);

}

但是我收到以下错误:表达式的类型必须是数组类型,但它解析为 ArrayList 我应该怎么做才能修复它?

4

3 回答 3

1

“值”是一个 ArrayList 吗?如果是这样使用

dodaj.setText( (String)values.get( arg2 ) );
于 2012-08-12T17:09:18.550 回答
0

您将不得不使用将 arraylist 转换为数组arraylist.toarray()

于 2012-08-12T17:13:28.490 回答
0

使用 ArrayList 你总是使用

arrayList.get(index);

推荐的方法是向您的项目/对象添加一个 toString() 方法,以便它返回首选字段。

public Student()
{
    ...
    ...
    public String toString()
    {
        return firstName + " " + lastName;
    }
}

现在您可以使用 arrayList.get(int index)。它将打印我们 toString() 的输出。

于 2012-08-12T17:17:39.990 回答