2016-11-30 19 views
0

我有一個listview項目,我可以喜歡和評論後,喜歡計數增加讓說1,但如果我向下滾動並回到帖子,我喜歡像計數器重置爲0,就像從服務器加載的那樣。Listview loadmore完成後回到列表的開頭,並通知數據集更改不起作用的按鈕像計數器

其次,我實現了加載更多的按鈕,但只要加載更多完成,其回到列表視圖的開始,而不是從我按下加載更多按鈕的位置繼續。問題發生在片段部分我用Activity實現相同的加載更多邏輯,並且它工作正常。

public class ListViewAdapter_Post extends BaseAdapter { 

// Declare Variables 
Context context; 
LayoutInflater inflater; 
ArrayList<HashMap<String, String>> data; 
HashMap<String, String> resultp = new HashMap<String, String>(); 

public ListViewAdapter_Post(Context context,ArrayList<HashMap<String, String>> arraylist) { 
    this.context = context; 
    data = arraylist; 

} 

@Override 
public int getCount() { 
    return data.size(); 
} 



@Override 
public Object getItem(int position) { 
    return null; 
} 

@Override 
public long getItemId(int position) { 
    return 0; 
} 

static class ViewHolder { 

    // Declare Variables 
    TextView usernameTV; 
    TextView timeTV; 
    TextView postTV; 
    TextView schyrTV; 

    ImageView postImg; 
    ImageView profilePicImg; 

    ImageButton commentBtn; 
    ImageButton reportBtn; 

    ImageButton likeBtn; 

    TextView likesCount; 
    TextView likestxt; 
    TextView commentCount; 
} 

ViewHolder holder; 
String username; 
String reg_id; 

String myyear; 

public View getView(final int position, View itemView, ViewGroup parent) { 
    itemView = null; 

    if (itemView == null) { 


     inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

     itemView = inflater.inflate(R.layout.list_item_home, parent, false); 
     // Get the position 
     resultp = data.get(position); 
     holder = new ViewHolder(); 

     // Locate the TextViews in listview_item.xml 
     holder.usernameTV = (TextView) itemView.findViewById(R.id.home_item_username); 
     holder.timeTV = (TextView) itemView.findViewById(R.id.home_item_post_time); 
     holder.postTV = (TextView) itemView.findViewById(R.id.home_item_post_text); 
     holder.schyrTV = (TextView) itemView.findViewById(R.id.home_item_schoolyear); 
     // Locate the ImageView in listview_item.xml 
     holder.profilePicImg = (ImageView) itemView.findViewById(R.id.home_item_profile_picture); 
     holder.postImg = (ImageView) itemView.findViewById(R.id.home_item_post_image); 
     // Locate the ImageView in listview_item.xml 
     holder.commentBtn = (ImageButton) itemView.findViewById(R.id.home_item_comment_btn); 
     holder.reportBtn= (ImageButton) itemView.findViewById(R.id.home_item_report_btn); 

     holder.likesCount = (TextView) itemView.findViewById(R.id.likesCount); 
     holder.likestxt = (TextView) itemView.findViewById(R.id.likestxt); 
     holder.commentCount = (TextView) itemView.findViewById(R.id.commentCount); 

     holder.likeBtn= (ImageButton) itemView.findViewById(R.id.home_item_like_btn); 

    } 

    else{ 

     holder = (ViewHolder) itemView.getTag(); 
    } 


    holder.postImg.setVisibility(View.VISIBLE); 

    reg_id = resultp.get(Fragment_home.POST_REG_ID); 

    String empty_image = resultp.get(Fragment_home.POST_PHOTO).toString(); 

    if(empty_image.equalsIgnoreCase("http://www.dentymz.com/appx/dtbcknd/posts/")){ 

     holder.postImg.setVisibility(View.GONE); 

     // Toast.makeText(context,"Post contains no pic",Toast.LENGTH_SHORT).show(); 

    } 

    else{ 
     holder.postImg.setVisibility(View.VISIBLE); 
     // Toast.makeText(context,"Post contains no pic",Toast.LENGTH_SHORT).show(); 
     Picasso.with(context).load(resultp.get(Fragment_post.POST_PHOTO)).placeholder(R.drawable.default_back_ash).fit().centerCrop().error(R.drawable.default_back_ash) 
       .into(holder.postImg); 
    } 



    Picasso.with(context).load(resultp.get(Fragment_post.POST_PROFILE_PIC)).placeholder(R.drawable.default_back_ash).fit().centerCrop().error(R.drawable.default_back_ash) 
      .into(holder.profilePicImg); 



    // Capture position and set results to the TextViews 
    holder.usernameTV.setText(resultp.get(Fragment_post.POST_USERNAME)); 
    holder.timeTV.setText(resultp.get(Fragment_post.POST_TIME)); 
    // holder.postTV.setText(resultp.get(Fragment_post.POST_TEXT)); 

    holder.postTV.setText(AndroidEmoji.ensure(resultp.get(Fragment_post.POST_TEXT), context)); 

    holder.schyrTV.setText(schyr); 

    holder.likesCount.setText(resultp.get(Fragment_post.POST_LIKES_COUNT)); 
    holder.commentCount.setText(resultp.get(Fragment_post.POST_COMMENTS_COUNT)+" Comments"); 

    DatabaseHandler db = DatabaseHandler.getDatabaseHandler(context); 
    UserFunctions userFunctions = new UserFunctions(); 
    userFunctions.isUserLoggedIn(context); 
    // user already logged in show dash board 
    username = db.getUsername(); 

    if(resultp.get(Fragment_home.POST_LIKED_BY).toString().equals(username)){ 

     holder.likeBtn.setImageResource(R.drawable.ic_favorite_24dp1); 
     holder.likeBtn.setTag("liked"); 

    } 

    else if(!resultp.get(Fragment_home.POST_LIKED_BY).toString().equals(username)){ 

     holder.likeBtn.setImageResource(R.drawable.ic_favorite_24dp); 
     holder.likeBtn.setTag("unliked"); 

    } 

    else { 

     Toast.makeText(context,"Error Occured",Toast.LENGTH_SHORT).show(); 
    } 


    final Intent user_profile = new Intent(context, MainProfile.class); 
    final Intent main_profile = new Intent(context, MyProfile.class); 




    holder.likeBtn.setTag(holder); 
    holder.likeBtn.setOnClickListener(new View.OnClickListener() { 
     @TargetApi(Build.VERSION_CODES.LOLLIPOP) 
     @Override 
     public void onClick(View view) { 

      if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { 

       holder = (ViewHolder) view.getTag(); 
       resultp = data.get(position); 

       if (holder.likeBtn.getDrawable().getConstantState().equals(context.getResources().getDrawable(R.drawable.ic_favorite_24dp).getConstantState())) { 
        resultp = data.get(position); 

        ConnectionDetector cd = new ConnectionDetector(context); 
        if (!cd.isConnectingToInternet()) { 

         Toast.makeText(context, "No internet connection", Toast.LENGTH_SHORT).show(); 


        } else { 


         String number = holder.likesCount.getText().toString(); 
         int num = Integer.parseInt(number); 
         int nene = num + 1; 
         String str = String.valueOf(nene); 

         holder.likesCount.setText(str); 

         holder.likeBtn.setImageResource(R.drawable.ic_favorite_24dp1); 

        } 

       } else if (holder.likeBtn.getDrawable().getConstantState().equals(context.getResources().getDrawable(R.drawable.ic_favorite_24dp1).getConstantState())) { 
        resultp = data.get(position); 

        ConnectionDetector cd = new ConnectionDetector(context); 
        if (!cd.isConnectingToInternet()) { 

         Toast.makeText(context, "No internet connection", Toast.LENGTH_SHORT).show(); 


        } else { 


         String number = holder.likesCount.getText().toString(); 
         int num = Integer.parseInt(number); 
         int nene = num - 1; 
         String str = String.valueOf(nene); 

         holder.likesCount.setText(str); 

         holder.likeBtn.setImageResource(R.drawable.ic_favorite_24dp); 

        } 
       } 

      } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 

       holder = (ViewHolder) view.getTag(); 
       resultp = data.get(position); 

       if (holder.likeBtn.getDrawable().getConstantState().equals(holder.likeBtn.getContext().getDrawable(R.drawable.ic_favorite_24dp).getConstantState())) { 
        resultp = data.get(position); 

        ConnectionDetector cd = new ConnectionDetector(context); 
        if (!cd.isConnectingToInternet()) { 

         Toast.makeText(context, "No internet connection", Toast.LENGTH_SHORT).show(); 


        } else { 


         String number = holder.likesCount.getText().toString(); 
         int num = Integer.parseInt(number); 
         int nene = num + 1; 
         String str = String.valueOf(nene); 

         holder.likesCount.setText(str); 

         holder.likeBtn.setImageResource(R.drawable.ic_favorite_24dp1); 

        } 

       } else if (holder.likeBtn.getDrawable().getConstantState().equals(holder.likeBtn.getContext().getDrawable(R.drawable.ic_favorite_24dp1).getConstantState())) { 
        resultp = data.get(position); 

        ConnectionDetector cd = new ConnectionDetector(context); 
        if (!cd.isConnectingToInternet()) { 

         Toast.makeText(context, "No internet connection", Toast.LENGTH_SHORT).show(); 


        } else { 


         String number = holder.likesCount.getText().toString(); 
         int num = Integer.parseInt(number); 
         int nene = num - 1; 
         String str = String.valueOf(nene); 

         holder.likesCount.setText(str); 

         holder.likeBtn.setImageResource(R.drawable.ic_favorite_24dp); 

        } 
       } 

      } 


     } 
    }); 




    final Intent post_comment = new Intent(context, Comments.class); 
    holder.commentBtn.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View view) { 
      resultp = data.get(position); 
      post_comment.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      post_comment.putExtra("id", resultp.get(Fragment_post.POST_ID)); 
      post_comment.putExtra("username",resultp.get(Fragment_post.POST_USERNAME)); 
      post_comment.putExtra("reg_id",resultp.get(Fragment_post.POST_REG_ID)); 

      post_comment.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      view.getContext().startActivity(post_comment); 



     } 
    }); 




    holder.commentCount.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View view) { 
      resultp = data.get(position); 
      post_comment.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      post_comment.putExtra("id", resultp.get(Fragment_post.POST_ID)); 
      post_comment.putExtra("username", resultp.get(Fragment_post.POST_USERNAME)); 

      post_comment.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      view.getContext().startActivity(post_comment); 


     } 
    }); 


    final Intent likes = new Intent(context, Likes_post.class); 
    holder.likesCount.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View view) { 
      resultp = data.get(position); 
      likes.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      likes.putExtra("id",resultp.get(Fragment_post.POST_ID)); 
      likes.putExtra("username", resultp.get(Fragment_post.POST_USERNAME)); 

      post_comment.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      view.getContext().startActivity(likes); 



     } 
    }); 


    holder.likestxt.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View view) { 
      resultp = data.get(position); 
      likes.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      likes.putExtra("id",resultp.get(Fragment_post.POST_ID)); 
      likes.putExtra("username", resultp.get(Fragment_post.POST_USERNAME)); 

      post_comment.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      view.getContext().startActivity(likes); 



     } 
    }); 


    return itemView; 
} 

}

回答

相關問題