私のアプリケーションは、firebase から ListView のボタンに最新のデータを返しています。でも一番上になりたい!私はそれについて考えましたが、それを行うには2つの方法しかないと思います。
1. リストビューを反転します。
このようにするべきだと思いますが、わかりませんでした。私はウェブでたくさん検索しましたが、私のケースに適した解決策はありません
これは私のアダプターコードです
public void onStart() {
super.onStart();
// Setup our view and list adapter. Ensure it scrolls to the bottom as data changes
final ListView listView = getListView();
// Tell our list adapter that we only want 50 messages at a time
mChatListAdapter = new ChatListAdapter(mFirebaseRef.limit(50), this, R.layout.chat_message, mUsername);
listView.setAdapter(mChatListAdapter);
}
そして、これは特別なリスト アダプター クラスを拡張ChatListAdapter
するカスタム リスト クラスのコンストラクターのコードです。ChatListAdapter
FirebaseListAdapter
public ChatListAdapter(Query ref, Activity activity, int layout, String mUsername) {
super(ref, Chat.class, layout, activity);
this.mUsername = mUsername;
}
[編集]これはクラスFirebaseListAdapter
を拡張するコードの一部ですBaseAdapter
public FirebaseListAdapter(Query mRef, Class<T> mModelClass, int mLayout, Activity activity) {
this.mRef = mRef;
this.mModelClass = mModelClass;
this.mLayout = mLayout;
mInflater = activity.getLayoutInflater();
mModels = new ArrayList<T>();
mModelKeys = new HashMap<String, T>();
// Look for all child events. We will then map them to our own internal ArrayList, which backs ListView
mListener = this.mRef.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String previousChildName) {
T model = dataSnapshot.getValue(FirebaseListAdapter.this.mModelClass);
mModelKeys.put(dataSnapshot.getKey(), model);
// Insert into the correct location, based on previousChildName
if (previousChildName == null) {
mModels.add(0, model);
} else {
T previousModel = mModelKeys.get(previousChildName);
int previousIndex = mModels.indexOf(previousModel);
int nextIndex = previousIndex + 1;
if (nextIndex == mModels.size()) {
mModels.add(model);
} else {
mModels.add(nextIndex, model);
}
}
}
2. データを降順でクエリします。
Firebase API ドキュメントと Web で検索したときに、取得したデータを降順で並べ替える方法が見つからなかったため、2 番目の方法は私には不可能です。
firebase の私のデータは次のようになります。
glaring-fire-9714
chat
-Jdo7-l9_KBUjXF-U4_c
author: Ahmed
message: Hello World
-Jdo71zU5qsL5rcvBzRl
author: Osama
message: Hi!
ありがとうございました。