2017-07-01 3 views
-2

私は初心者です。ホームスクリーンにリサイクルリストを表示するアプリケーションを、名前や都市などの情報とともに開発したいと考えています。しかし、リサイクラーリストビューアイテムをクリックすると、新しいスクリーンが開き、名前、住所、市区町村、年齢などの情報が表示されます。リサイクラーのクリックでfirebaseデータベースのデータを表示するには

私は、名前と都市のリサイクラーリストビューを表示しているアプリケーションの最初の部分を開発しました。しかし、名前、住所、都市、年齢などの情報を表示するリサイクルリストビューの項目をクリックすると、新しい画面が開きます。ホーム画面に

例えば、

Firebaseデータベース

  • business_list

    - knjdbasgjbascacgjc 
        - name: "intex" 
        - address: "south avenue" 
        - city: "south home" 
        - description: "small company" 
        - rating: "5" 
    
    - Khasjdgjacjaghjkhb 
        - name: "mmx" 
        - address: "north avenue" 
        - city: "north home" 
        - description: "big company" 
        - rating: "3" 
    

私はRECYCLERビューに表示AM: -

例えば、私は最初の項目をクリックすると、

- intex, south avenue, south home, small company, 5 

場合は、私がクリックしたときに - :私はRECYCLERビューで項目をクリックすると、ITがそれに応じてDETAILS WITH新しい画面が表示されていることをWANT

- intex, south avenue, 5 
    - mmx, north avenue, 3 

第2項目、

  - mmx, north avenue, north home, big company, 3 

どのようにすればいいですか?

onBindViewHolder、

@Override 
    public void onBindViewHolder(final UserViewHolder holder, final int 
    position) { 

    BusinessDetailModel businessDetailModel = list.get(position); 

    holder.businessName.setText(businessDetailModel.businessName); 
    holder.businessCity.setText(businessDetailModel.city); 
    holder.businessRating.setText(businessDetailModel.ratingValue + ""); 

    holder.itemView.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(final View v) { 

      Context context = v.getContext(); 

      intent = new Intent(context, BusinessDetailActivity.class); 

      context.startActivity(intent); 
     } 

    }); 
} 

答えて

1

あなたの質問にあなたのデータベース構造を投稿していない、と私は本当にあなたが年齢、都市とアドレス情報を保存したのか分かりません。

childEventListenerから取得したdatasnapshotオブジェクトに上記の情報が含まれていると仮定した一般的な回答を提供します。

@Override 
     public void onChildAdded(DataSnapshot dataSnapshot, String s) { 
      final YourPOJO pojo = dataSnapshot.getValue(YourPOJO.class);} 

そして、次のようにそれはArrayList<YourPOJO>オブジェクトに追加します: - - :

は、次のようにあなたのrecyclerViewアダプタでChildEventListenerは、POJOのオブジェクトを作成するとし

​​

さて、onBindViewHolder()にあなたのrecyclerViewアダプタのメソッドを呼び出すと、次の関数を呼び出して新しいアクティビティを開始し、あなたのpojoからデータを渡すことができます: -

@Override 
public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) { 
holder.yourView.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View view) { 
        Intent intent = new 
        Intent(this,SecondActivty.class); 
        intent.putExtra("age",list.get(position).getAge; 
        intent.putExtra("name",list.get(position).getName; 
        intent.putExtra("address",list.get(position) 
        .getAddress; 
        //and so on for the other values 
        startActivity(intent); 
         } 
        }); 
       } 

これに続いて、getIntent()を2回目のアクティビティで使用し、値を取得して表示することができます。

編集onBindViewHolder()のコードを見た後: -

私はintentsの作業にいくつかの光を当てるしたいです。 intentを使用すると、アクティビティ間でデータを渡すことができます。私のonBindViewHolder()コードを見てください。

だから、あなたのコードのために、単に次のように変更します。 - この後

@Override 
public void onBindViewHolder(final UserViewHolder holder, final int 
position) { 

BusinessDetailModel businessDetailModel = list.get(position); 

holder.businessName.setText(businessDetailModel.businessName); 
holder.businessCity.setText(businessDetailModel.city); 
holder.businessRating.setText(businessDetailModel.ratingValue + ""); 

holder.itemView.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(final View v) { 

     Context context = v.getContext(); 

     intent = new Intent(context, BusinessDetailActivity.class); 
     intent.putExtra("Name",businessDetailModel.businessName); 
     intent.putExtra("City",businessDetailModel.city); 
     intent.putExtra("Rating",businessDetailModel.ratingValue); 
     //And so on for the rest of the data that you want to pass to 
     //the second activity 

     context.startActivity(intent); 
    } 

}); 

}

を、あなたのBusinessDetailActivityで、次のようにあなたが渡されたデータを取り出すことができます -

String name = getIntent().getExtra("Name"); 
String city = getIntent().getExtra("City"); 
//and so on for the rest 

on intentsを読むことを強くお勧めします。

+0

質問にDB構造を追加しました –

+0

あなたは 'ListView'または' RecyclerView'を使っていることを明確にしてください。両方とも実装が異なります。それは私があなたをより良く助けるのを助けるでしょう。 –

+0

Recyclerビュー.. –

関連する問題