如何通过单击recitelerview1的listitem在recylerview1中添加recylerview2?

时间:2016-05-23 07:54:24

标签: android android-recyclerview adapter android-adapter

我有像这样的图像:

Recylerview2里面的Recylerview2

img 在这种情况下:

如果我点击列表项的数字1,则recylerview2将显示在数字1下方

所以我的问题是:

我该怎么做?这是我的代码。

我将此代码放在适配器内的onBindViewHolder中。

    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);
    }

这是我的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 个答案:

答案 0 :(得分:1)

尝试使用此库:android-advancedrecyclerview

使用此库检查此example有关如何使用expandable recyclerview的信息。

要使用它,请通过在var select02 = $('#select02'); $(select02).select2({ data: [{ id: 0, text: "test01" }, { id: 1, text: "test02" }, { id: 2, text: "test03" }, { id: 3, text: "test04" }, { id: 4, text: "test05" }], placeholder: "Branch name", }); 文件中为其添加依赖项,将lib添加到项目中:

gradle.build