私のconvertViewアダプターでは、QBuserからユーザー名を取得する必要があります。私はArrayList<Integer> userIds = new ArrayList<>();
を使用するので、ユーザーIDのみを持っています。それは動作しますが、リストに表示するのに遅延があり、リストビューのすべてのユーザー名も変更されます。メインアクティビティやアレイアダプターで使用する必要がありますか?これは私のsetTextです:lblFrom.setText(result.getLogin());
AndroidアレイアダプターQuickblox settext delay
public View getView(int position, View convertView, ViewGroup parent) {
QBChatMessage m = messagesItems.get(position);
LayoutInflater mInflater = (LayoutInflater) context
.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
// Identifying the message owner
if(messagesItems.get(position).getSenderId()==null)
{
convertView = mInflater.inflate(R.layout.list_item_message_left,
null);
} else
if (messagesItems.get(position).getSenderId()==myID) {
// message belongs to you, so load the right aligned layout
convertView = mInflater.inflate(R.layout.list_item_message_right,
null);
} else {
// message belongs to other person, load the left aligned layout
convertView = mInflater.inflate(R.layout.list_item_message_left,
null);
}
final TextView lblFrom = (TextView) convertView.findViewById(R.id.lblMsgFrom);
TextView txtMsg = (TextView) convertView.findViewById(R.id.txtMsg);
txtMsg.setText(m.getBody());
if (messagesItems.get(position).getSenderId()==null){
lblFrom.setText("Me");
}else
{
ArrayList<Integer> userIds = new ArrayList<>();
userIds.add(messagesItems.get(position).getSenderId());
QBUsers.getUsersByIDs(userIds, new QBPagedRequestBuilder(userIds.size(), 1), new QBEntityCallbackImpl<ArrayList<QBUser>>() {
@Override
public void onSuccess(ArrayList<QBUser> results, Bundle params) {
super.onSuccess(results,params);
for (QBUser result : results)
{
lblFrom.setText(result.getLogin());
}
}
});
}
return convertView;
}
ありがとうございます。簡単なコードで説明できますか? – suresh