gpt4 book ai didi

java - 使用 ArrayList 的 ArrayAdapter

转载 作者:行者123 更新时间:2023-12-01 12:43:38 24 4
gpt4 key购买 nike

我在使用 ArrayAdapter 时遇到问题,因为我使用的是消息 ArrayList,并且想要显示消息数据。

我在 getView 中遇到问题,因为我不确定如何遍历 ArrayList 并正确显示数据。

我确实喜欢这样:

Activity 中我有这个:

        ArrayAdapterItem arrayAdapter = new ArrayAdapterItem(DashboardActivity.this,
R.layout.list_view_row_item, result);
listViewItems.setAdapter(arrayAdapter);

在类ArrayAdapterItem中我有:

public class ArrayAdapterItem extends ArrayAdapter<Message> {

ArrayList<Message> message = new ArrayList<Message>();
Context mcontext;
int layout;
int messageNumber;


public ArrayAdapterItem(Context mcontext, int resource, ArrayList<Message> message) {
super(mcontext, resource);
this.message = message;
this.mcontext = mcontext;
this.layout = resource;
}


@Override
public View getView(int position, View convertView, ViewGroup parent ){

ViewHolderItem viewHolder;


if(convertView==null){
LayoutInflater inflater = ((Activity) mcontext).getLayoutInflater();
convertView = inflater.inflate(layout, parent, false);

viewHolder = new ViewHolderItem();
viewHolder.textViewItem = (TextView) convertView.findViewById(R.id.textViewItem); //ovde ih dodajem

convertView.setTag(viewHolder);
}else {
viewHolder = (ViewHolderItem) convertView.getTag();
}

if(message!=null){

while(messageNumber>0){
messageNumber--;
viewHolder.textViewItem.setText(message.get(messageNumber).getMessageText());
Log.d("Lista AUTORA: ", message.get(messageNumber).getMessageText() + "");
}
}


return convertView;


}

@Override
public int getCount() {

messageNumber = message.size();
return messageNumber;
}


static class ViewHolderItem {
TextView textViewItem;
}

}

我有 3 个消息文本要显示,它确实显示,但只有第一个具有 ok 值,其他两个具有来自 TextView 的字符串(未设置)。日志中一切正常,消息的所有 3 个值都正常。

我做错了什么吗?

最佳答案

我不太清楚你的问题是什么。如果您的 ArrayList 具有三个元素,并且您尝试显示包含三个条目的列表,则上述代码将无法执行此操作。 getView 对于每个列表条目都会调用一次。 position 参数告诉方法该方法应该填充哪个列表条目。您根本没有使用 position;相反,您将循环遍历整个列表,但这不起作用。相反,尝试删除 while 循环并使用类似

viewHolder.textViewItem.setText(message.get(position).getMessageText());
// ^^^^^^^^

就像我说的,我不完全确定您要做什么,但我认为您需要做类似的事情。

关于java - 使用 ArrayList 的 ArrayAdapter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24869657/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com