如何在adapter1

时间:2016-05-18 05:42:58

标签: android android-asynctask adapter

我是这个适配器类:

public class NoteFeedListAdapter extends RecyclerView.Adapter<feedItemsHolder>{
      private Activity activity;
      private LayoutInflater inflater;
      private List<NoteFeedItem> feedItems;
      private List<CommentModel> commentItems;
      private NoteCommentListAdapter adapter;
      private RecyclerView mRecyclerView;
      ImageLoader imageLoader = NoteAppController.getInstance().getImageLoader();
      private static final String URL_LIST_VIEW_COMMENT = "http://url.com";
      private int level = 0;
      private Context mContext;

      public NoteFeedListAdapter(Context context, List<NoteFeedItem> feedItems) {
           this.feedItems = feedItems;
           this.mContext = context;
      }
      public feedItemsHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
           View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.feed_item, null);
           feedItemsHolder mh = new feedItemsHolder(v);

           return mh;
      }
      public void onBindViewHolder(final feedItemsHolder fItemsHolder, final int i) {
          final NoteFeedItem item = feedItems.get(i);
          fItemsHolder.setLevel(item.getLevel());
          if (item.getName2() != null) {
                fItemsHolder.mHiddenComment.setText(item.getName2()+": "+item.getComment2());
                fItemsHolder.feedImageView.setVisibility(View.VISIBLE);

和Inside onBindViewHolder:

    int jComment = Integer.parseInt(item.getJumlahComment().toString());
                    if( jComment > 0){
                         fItemsHolder.mHiddenComment.setOnClickListener(new View.OnClickListener() {
                             @Override
                             public void onClick(View v) {
    //this code is what I used to call asyntask but result from asynctask cannot be shown in this adapter
                                  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);
              }

              if(item.getLevel() == Level.LEVEL_ONE){
                    level = Level.LEVEL_TWO;
              }else if(item.getLevel() == Level.LEVEL_TWO){
                    level = Level.LEVEL_THREE;
              } 
          }

          public int getItemCount() {
              return (null != feedItems ? feedItems.size() : 0);
          }

    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.personal.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();
                }else{
                    try{
                        JSONObject json = new JSONObject(s);
                        String id_note = json.getString("id_note");
                        Toast.makeText(mContext, id_note, Toast.LENGTH_SHORT).show();

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

                            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);
                        }
                        adapter.notifyDataSetChanged();

                    }catch(JSONException e){
                        e.printStackTrace();
                        Log.w("getListNotesComment", "exception");
                    }
                }
               /* iH.mHiddenComment.setText("");*/
            }
        }
        ambilComment ru = new ambilComment();
        ru.execute(userid, id_note);
    }

问题是我想从Asynctask添加数据并在另一个适配器上显示。但我怎么能这样做?请帮忙。来自另一个适配器的视图无法使用此代码显示。

0 个答案:

没有答案