阵列适配器中的反向列表顺序

use*_*680 9 android android-arrayadapter android-studio

如何修改此代码,以便将每个新对象添加到列表顶部而不是底部?我希望将最新的对象添加到列表的最顶部,以便在列表中向下滚动时看到较旧的对象.

public class StatusAdapter extends ArrayAdapter {
protected Context mContext;
protected List<ParseObject> mStatus;

public StatusAdapter(Context context, List<ParseObject> status) {
    super(context, R.layout.homepage, status);
    mContext = context;
    mStatus = status;
}

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    ViewHolder holder;

    if (convertView == null) {
        convertView = LayoutInflater.from(mContext).inflate(
                R.layout.homepage, null);
        holder = new ViewHolder();
        holder.usernameHomepage = (TextView) convertView
                .findViewById(R.id.usernameHP);
        holder.statusHomepage = (TextView) convertView
                .findViewById(R.id.statusHP);

        convertView.setTag(holder);
    } else {

        holder = (ViewHolder) convertView.getTag();

    }

    ParseObject statusObject = (ParseObject)mStatus.get(position);

    // title
    String username = statusObject.getString("newUser") + ":";
    holder.usernameHomepage.setText(username);

    // content
    String status = statusObject.getString("newStatus");
    holder.statusHomepage.setText(status);

    return convertView;
}

public static class ViewHolder {
    TextView usernameHomepage;
    TextView statusHomepage;

}

}
Run Code Online (Sandbox Code Playgroud)

Rav*_*ari 17

如果你想以反向顺序显示列表顶部的最新项目,那么只需反转你的list.Java集合类提供一个反向方法,它可以反转列表中的所有项目.参见下面的代码 -

Collections.reverse(aList);

上面的代码反向列表项并将结果存储在同一列表中.

希望它会对你有所帮助.


Lit*_*ild 5

List接口的每个具体实现都定义了void add(int index, E element)

在此列表中的指定位置插入指定元素(可选操作)。将当前在该位置的元素(如果有)和任何后续元素向右移动(向它们的索引添加一个)。

因此,您可以add(0,item)然后通知您的数据集已更改。这将使您新添加的项目出现在顶部而不是底部。