2017-03-28 73 views
0

最近,我一直在研究一個博客應用項目,其中我使用Firebase保存並檢索所有帖子,並且正在Android Studio中開發我的應用。如何在博客應用上顯示最新帖子?

問題是,無論何時發佈新帖子,最新帖子都會發布到帖子列表的底部;因此,用戶必須一直到發佈活動才能看到新帖子。我怎樣才能扭轉它?我希望最新的帖子出現在頂部。我想寫什麼代碼?

這是我的代碼:

public class AlertsActivity extends AppCompatActivity{ 

    private Toolbar toolbar; 
    private RecyclerView mbloglist; 
    private DatabaseReference mDatabase; 

    @Override 
    protected void onCreate(Bundle SavedInstanceState) { 
     super.onCreate(SavedInstanceState); 
     setContentView(R.layout.alert); 

     toolbar= (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 
     mDatabase= FirebaseDatabase.getInstance().getReference().child("Blog"); 
     mDatabase.keepSynced(true); 
     mbloglist= (RecyclerView) findViewById(R.id.alert_list); 
     mbloglist.setHasFixedSize(true); 
     mbloglist.setLayoutManager(new LinearLayoutManager(this)); 

    } 

    @Override 
    protected void onStart() { 
     super.onStart(); 

     FirebaseRecyclerAdapter<Blog,BlogViewHolder> firebaseRecyclerAdapter=new FirebaseRecyclerAdapter<Blog, BlogViewHolder>(
       Blog.class, 
       R.layout.blog_row, 
       BlogViewHolder.class,mDatabase 

     ){ 
      @Override 
      protected void populateViewHolder(BlogViewHolder viewHolder, Blog model, int position) { 
       viewHolder.setTitle(model.getTitle()); 
       viewHolder.setDesp(model.getDesp()); 

      } 
     }; 

     mbloglist.setAdapter(firebaseRecyclerAdapter); 
    } 

    public static class BlogViewHolder extends RecyclerView.ViewHolder{ 
     View mview; 

     public BlogViewHolder(View itemView) { 
      super(itemView); 
      mview=itemView; 
     } 

     public void setTitle(String title){ 
      TextView post_title= (TextView) mview.findViewById(R.id.blog_title); 
      post_title.setText(title); 

     } 

     public void setDesp(String desp){ 
      TextView post_desp= (TextView) mview.findViewById(R.id.blog_desp); 
      post_desp.setText(desp); 
     } 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.menu_alerts,menu); 
     return super.onCreateOptionsMenu(menu); 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 

     if(item.getItemId()==R.id.action_add){ 
      Intent intent=new Intent(AlertsActivity.this,PostActivity.class); 

      startActivity(intent); 

     } 
     return super.onOptionsItemSelected(item); 
    } 
} 
+0

您應該在檢索帖子時放置一個標誌。 –

回答

0

請多加一個領域,時間戳到每個崗位。而取出由火力地堡數據庫使用orderByChild(「時間戳」)的所有職位,按日期排序的職位。

相關問題