2016-12-11 4 views
0

Iveはfirebaase recyclerviewを使用し、アップロードされたjsonを使用してファイルを作成しました。 私は、JSONファイルに記載されている項目を並べ替えて、同じ順序で受け取っていきたいと考えています。しかし、毎回私はそれが私のアプリで混乱して取得します。これを解決するには?firebaseから注文されたjsonファイルを取得する方法

public class NoticesFragment extends Fragment { 

    private RecyclerView mNoticesList; 
    private DatabaseReference mDatabase; 
// private ProgressDialog vProgress; 
    private View rootview; 
    private FirebaseRecyclerAdapter<Notices,NoticeViewHolder> firebaseRecyclerAdapter; 


    public NoticesFragment() { 
     // Required empty public constructor 
    } 


    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     rootview = inflater.inflate(R.layout.fragment_notices, container, false); 
     Toast.makeText(getActivity(),"Please Wait While Load , It May Take Some Time ...", Toast.LENGTH_SHORT).show(); 

     mDatabase = FirebaseDatabase.getInstance().getReference().child("notice"); 

     mNoticesList = (RecyclerView) rootview.findViewById(R.id.notices_list); 

     mNoticesList.setLayoutManager(new LinearLayoutManager( getActivity())); 

     mNoticesList.setHasFixedSize(true); 

     return rootview; 
    } 


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

     firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Notices, NoticeViewHolder>(

       Notices.class, 
       R.layout.list_view_row, 
       NoticeViewHolder.class, 
       mDatabase 

     ) { 
      @Override 
      protected void populateViewHolder(NoticeViewHolder viewHolder, Notices model, int position) { 
        viewHolder.setRefertext(model.getRefer()); 
        viewHolder.setDatetext(model.getDate()); 
        viewHolder.setLink(model.getLink()); 
      } 
     }; 



     mNoticesList.setAdapter(firebaseRecyclerAdapter); 

    } 

    public static class NoticeViewHolder extends RecyclerView.ViewHolder{ 

     final View mView; 
     private String link; 
     private Intent myIntent; 
     public NoticeViewHolder(View itemView) { 
      super(itemView); 

      mView = itemView; 
      mView.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        try { 
         Intent myIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(link)); 
         mView.getContext().startActivity(myIntent); 
        } catch (ActivityNotFoundException e) { 
         Toast.makeText(mView.getContext(),"No Activity found to handle the request ",Toast.LENGTH_LONG).show(); 
         e.printStackTrace(); 
        } 
       } 
      }); 

     } 
     public void setRefertext(String refertext){ 
      TextView referText = (TextView) mView.findViewById(R.id.refer_text); 
      referText.setText(refertext); 
     } 

     public void setDatetext (String datetext){ 
      TextView dateText = (TextView) mView.findViewById(R.id.date_text); 
      dateText.setText(datetext); 

     } 

     public void setLink (String link){ 
      this.link = link; 

     } 

    } 







} 

私はfirebaseにアップロードした順序付けされたJSONを作成するためにはどうすればよいですか?私は同じ順序で商品を戻したいです。

答えて

1

JSONの定義は未定義です。したがって、アップロードしたJSONファイルに項目が存在する方法は、データベースに保存されているので失われます。

データを注文するには、FirebaseのorderBy...メソッドを使用してデータを取得します。あなたの通知は、タイムスタンプのプロパティを持っている場合たとえば、あなたがそれらをしてリサイクルビューに命じ得ることができる:

firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Notices, NoticeViewHolder>(

    Notices.class, 
    R.layout.list_view_row, 
    NoticeViewHolder.class, 
    mDatabase.orderByChild("timestamp") 

) { 

私は、具体的section on ordering and filteringFirebase documentationにいくつかの時間を費やしてお勧めします。

関連する問題