Необходимо перевернуть просмотр списка после получения данных из Firebase - PullRequest
0 голосов
/ 15 октября 2018

У меня есть созданное приложение для Android. В моем приложении, когда люди нажимают на кнопку, оно переходит к активности в списке запросов и отображает все имя и описание.Все данные хранятся в базе данных.Firebase хранит данные последовательно один за другим. Вот почему, когда я получаю данные из firebase, список показывает все последовательно. Но я хочу показать последние данные сверху.Как я могу это сделать.

Вот моя деятельность, ее имена requestList

RequestList.java

String description;
ArrayList<String> RequestList;
ListView listView;
ArrayAdapter<String> arrayAdapter;



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_request_list);


    RequestList = new ArrayList<>();

    listView = (ListView) findViewById(R.id.list_request);
    arrayAdapter = new ArrayAdapter<String>(this, R.layout.list_item, R.id.list, RequestList);

    listView.setAdapter(arrayAdapter);





    DatabaseReference myRef = database.getReference("Request");



    myRef.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {
            RequestName Request = dataSnapshot.getValue(RequestName.class);
            String requestInfo = "Name : "+ Request.requestname + "   \nDescription : " +  Request.description;
            RequestList.add(requestInfo);
            arrayAdapter.notifyDataSetChanged();
        }



        @Override
        public void onChildChanged(DataSnapshot dataSnapshot, String s) {

        }

        @Override
        public void onChildRemoved(DataSnapshot dataSnapshot) {

        }

        @Override
        public void onChildMoved(DataSnapshot dataSnapshot, String s) {

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });
}

Вот макет

activity_request_list



<ListView
    android:id="@+id/list_request"
    android:layout_width="match_parent"
    android:layout_height="fill_parent"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignParentTop="true"
    android:divider="@color/red"
    android:dividerHeight="2dip" />

Я использовал пользовательский макет для отображения

list_item

<TextView
    android:id="@+id/list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textSize="20dp"
    android:textStyle="bold"
    android:layout_marginLeft="15dp"
    android:textColor="@color/White" />

Пожалуйста, помогите

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Я бы попытался добавить requestInfo перед RequestList.Это может решить вашу проблему, а не перевернуть весь список.

myRef.addChildEventListener(new ChildEventListener() {
    @Override
    public void onChildAdded(DataSnapshot dataSnapshot, String s) {
        RequestName request = dataSnapshot.getValue(RequestName.class);
        String requestInfo = "Name : "+ Request.requestname + "   \nDescription : " +  Request.description;
        RequestList.add(0, requestInfo);
        arrayAdapter.notifyDataSetChanged();
    }

    // Other methods are removed for simplicity. 
});

Надеюсь, это поможет вам!

0 голосов
/ 15 октября 2018

Вы можете использовать коллекцию для реверса, например: - Collection.reverse (RequestList);

RequestList = new ArrayList<>();

listView = (ListView) findViewById(R.id.list_request);
arrayAdapter = new ArrayAdapter<String>(this, R.layout.list_item, R.id.list, RequestList);

listView.setAdapter(arrayAdapter);





DatabaseReference myRef = database.getReference("Request");



myRef.addChildEventListener(new ChildEventListener() {
    @Override
    public void onChildAdded(DataSnapshot dataSnapshot, String s) {
        RequestName Request = dataSnapshot.getValue(RequestName.class);
        String requestInfo = "Name : "+ Request.requestname + "   \nDescription : " +  Request.description;
        RequestList.add(requestInfo);
       Collection.reverse(RequestList);
        arrayAdapter.notifyDataSetChanged();
    }



    @Override
    public void onChildChanged(DataSnapshot dataSnapshot, String s) {

    }

    @Override
    public void onChildRemoved(DataSnapshot dataSnapshot) {

    }

    @Override
    public void onChildMoved(DataSnapshot dataSnapshot, String s) {

    }

    @Override
    public void onCancelled(DatabaseError databaseError) {

    }
});mpElements);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...