2016-05-23 9 views
0

Ich habe Bild wie das zum Beispiel:Wie recylerview2 in recylerview1 hinzufügen, indem Sie auf listitem von recyclerview1 klicken?

Recylerview2 innen Recylerview1

img In diesem Fall:

Wenn ich auf der Nummer 1 der Liste Elements klicken, wird recylerview2 1 unter einer Reihe erscheinen

Also meine Frage ist:

Wie kann ich das tun? und das ist mein Code.

Ive diesen Code innerhalb onBindViewHolder innerhalb Adapter.

fItemsHolder.mLinearReply.setVisibility(View.GONE); 
    if (item.getName2() != null) { 
     fItemsHolder.mHiddenComment.setText(item.getName2()+": "+item.getComment2()); 
     fItemsHolder.feedImageView.setVisibility(View.VISIBLE); 

     int jComment = Integer.parseInt(item.getJumlahComment().toString()); 
     if(jComment > 0){ 
      fItemsHolder.mHiddenComment.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        commentItems = new ArrayList<CommentModel>(); 
        adapter = new NoteCommentListAdapter(mContext, commentItems); 
        mRecyclerView = new RecyclerView(mContext); 
        getListViewComments(item.getUserid(), item.getId(),fItemsHolder,i, commentItems, adapter, mRecyclerView); 
        commentItems = new ArrayList<CommentModel>(); 
        adapter = new NoteCommentListAdapter(mContext, commentItems); 
        mRecyclerView.setAdapter(adapter); 

       } 
      }); 
     } 
    } else { 
     fItemsHolder.mHiddenComment.setVisibility(View.GONE); 
     fItemsHolder.mLinearHiddenComment.setVisibility(View.GONE); 
    } 

Und das ist mein AsyncTask:

private void getListViewComments(final String userid, String id_note,final feedItemsHolder feedItemsHolder, int i, final List<CommentModel> commentItems, final NoteCommentListAdapter adapter, final RecyclerView mRecyclerView) { 
    class ambilComment extends AsyncTask<String, Void, String> { 
     ProgressDialog loading; 
     com.android.personalRoom.asynctask.profileSaveDescription profileSaveDescription = new profileSaveDescription(); 
     String result = ""; 
     InputStream inputStream = null; 

     @Override 
     protected void onPreExecute() { 
      feedItemsHolder.mLoading.setVisibility(View.GONE); 
      feedItemsHolder.mHiddenComment.setVisibility(View.GONE); 
      feedItemsHolder.mLinearHiddenComment.setVisibility(View.GONE); 
      feedItemsHolder.mLoading.setVisibility(View.VISIBLE); 
      super.onPreExecute(); 
     } 

     @Override 
     protected String doInBackground(String... params) { 
      HashMap<String, String> data = new HashMap<String,String>(); 
      data.put("userid", params[0]); 
      data.put("id_note", params[1]); 
      String result = profileSaveDescription.sendPostRequest(URL_LIST_VIEW_COMMENT,data); 
      return result; 
     } 

     protected void onPostExecute(String s) { 
      JSONArray dataJsonArr = null; 
      if(s.equals(null)){ 
       Toast.makeText(mContext, "Internet Problem.", Toast.LENGTH_SHORT).show(); 
       Log.w("notakomen", "notakomen: "+s); 
      }else{ 
       Log.w("notakomen", "notakomen: "+s); 
       try{ 
        JSONObject json = new JSONObject(s); 
        String id_note = json.getString("id_note"); 

        dataJsonArr = json.getJSONArray("data"); 
        for (int i = 0; i < dataJsonArr.length(); i++) { 

         JSONObject c = dataJsonArr.getJSONObject(i); 

         String id_comment = c.getString("id_comment"); 
         String uid = c.getString("userid"); 
         String profile_name = c.getString("profile_name"); 
         String profile_photo = c.getString("profile_photo"); 
         String amount_of_like = c.getString("amount_of_like"); 
         String amount_of_dislike = c.getString("amount_of_dislike"); 
         String amount_of_comment = c.getString("amount_of_comment"); 
         String content_comment = c.getString("content_comment"); 
         String tgl_comment = c.getString("tgl_comment"); 
         String parent_id = c.getString("parent_id"); 

         Log.e(TAG, "id_comment: " + id_comment 
           + ", uid: " + uid 
           + ", profile_name: " + profile_name 
           + ", profile_photo: " + profile_photo 
           + ", amount_of_comment: " + amount_of_comment 
           + ", tgl_comment: " + tgl_comment); 

         CommentModel citem = new CommentModel(); 
         citem.setId_note(id_note); 
         citem.setId_comment(id_comment); 
         citem.setUserid(uid); 
         citem.setProfileName(profile_name); 
         String pPhoto = c.isNull("profile_photo") ? null : c.getString("profile_photo"); 
         citem.setProfile_photo(pPhoto); 
         citem.setJumlahLove(amount_of_like); 
         citem.setJumlahNix(amount_of_dislike); 
         citem.setJumlahComment(amount_of_comment); 
         citem.setContent_comment(content_comment); 
         citem.setTimeStamp(tgl_comment); 
         String prntID = c.isNull("parent_id") ? null : c.getString("parent_id"); 
         citem.setParent_id(prntID); 

         citem.setLevel(level); 
         commentItems.add(citem); 

         feedItemsHolder.mNameReply.setText(profile_name); 
        } 
        adapter.notifyDataSetChanged(); 

       }catch(JSONException e){ 
        e.printStackTrace(); 
        Log.w("getListNotesComment", "exception"); 
       } 
       feedItemsHolder.mLoading.setVisibility(View.GONE); 
       feedItemsHolder.mLinearReply.setVisibility(View.VISIBLE); 
      } 
      /* iH.mHiddenComment.setText("");*/ 
     } 
} 
    ambilComment ru = new ambilComment(); 
    ru.execute(userid, id_note); 
} 
+1

Haben auch Sie eine erweiterbare Listenansicht im Innern mit einem Recycler betrachtet mit Blick? –

+0

Jetzt ist meine Frage, kann erweiterbare Liste in CollapsingToolbarLayout gescrollt werden? weil, wenn ich recylerview verwende, kann es innerhalb CollapsingToolbarLayout gescrollt werden. Wie dieses http://imgur.com/R8kQvg1 @MalithLakshan – Lukmanpryg

Antwort

1

Versuchen Sie, diese Bibliothek: android-advancedrecyclerview

prüfen diese example, wie erweiterbar recyclerview verwenden, um diese lib verwenden.

es verwenden zu können, fügen Sie die lib zu einem Projekt durch eine Abhängigkeit für sie in der gradle.build Datei hinzufügen wie:

dependencies { 
    compile ('com.h6ah4i.android.widget.advrecyclerview:advrecyclerview:[email protected]'){ 
     transitive=true 
    } 
}