我使用pageradapter滑动图像,其通知未正确通知



我使用pageradapter进行滑动图像,并且在滑动图像中也添加了一个喜欢的按钮。单击"喜欢的按钮"之后,它没有得到正确的通知,映像不会变为不利图标。

它是用于加载api

private class PremiumProjectLoad extends AsyncTask<String, Void, JSONObject> {
    JSONParser jsonParser = new JSONParser();
    String url= ApiLinks.PremiumProject;
    ProgressHUD mProgressHUD;
    protected void onPreExecute(){

        mProgressHUD = ProgressHUD.show(getActivity(),null, true);
        super.onPreExecute();
    }
    protected JSONObject doInBackground(String... arg0) {
        HashMap<String,String> params=new HashMap<>();
        try {

            params.put("languageID",CommonStrings.languageID);
            params.put("cityID",CommonStrings.cityID);
            if(session.isLoggedIn()){
                params.put("userID",UserLogin.get(SessionManager.KEY_CUSTOMER_ID));
            }

            JSONObject json = jsonParser.SendHttpPosts(url,"POST",params);
            if (json != null) {
                return  json;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    protected void onPostExecute(JSONObject json) {
        if(json!=null) {
            String Status=json.optString("status");
            String Message=json.optString("message");
            CommonImagePath=json.optString("imagepath");
            PremiumDataArray.clear();
            if(Status.equals("ok")){

                JSONArray DataArray=json.optJSONArray("data");
                if(DataArray!=null && DataArray.length()>0) {
                    for (int i = 0; i < DataArray.length(); i++) {

                        JSONObject DataObj = DataArray.optJSONObject(i);
                        String projectID = DataObj.optString("projectID");
                        String projectName = DataObj.optString("projectName");
                        String propertyUnitPriceRange = DataObj.optString("propertyUnitPriceRange");
                        String projectOfMonthImage = DataObj.optString("projectOfMonthImage");
                        String propertyUnitBedRooms = DataObj.optString("propertyUnitBedRooms");
                        String projectBuilderName = DataObj.optString("projectBuilderName");
                        String propertyTypeName = DataObj.optString("propertyTypeName");
                        String purpose = DataObj.optString("purpose");
                        String projectBuilderAddress = DataObj.optString("projectBuilderAddress");
                        String projectFavourite = DataObj.optString("projectFavourite");
                        PremiumData premiumData = new PremiumData();
                        premiumData.setProjectID(projectID);
                        premiumData.setProjectName(projectName);
                        premiumData.setPropertyUnitPriceRange(propertyUnitPriceRange);
                        premiumData.setProjectOfMonthImage(projectOfMonthImage);
                        premiumData.setPropertyUnitBedRooms(propertyUnitBedRooms);
                        premiumData.setProjectBuilderName(projectBuilderName);
                        premiumData.setPropertyTypeName(propertyTypeName);
                        premiumData.setPurpose(purpose);
                        premiumData.setProjectBuilderAddress(projectBuilderAddress);
                        premiumData.setProjectFavourite(projectFavourite);
                        PremiumDataArray.add(premiumData);
                    }
                    LoopViewPager viewpager = (LoopViewPager) homeView.findViewById(R.id.viewpager);
                    CircleIndicator indicator = (CircleIndicator) homeView.findViewById(R.id.indicator);

//if(pageradapter == null)

                        pagerAdapter = new PremiumProjectAdapter(getActivity(), PremiumDataArray);
                        viewpager.setAdapter(pagerAdapter);
                        indicator.setViewPager(viewpager);

                      //  pagerAdapter.notifyDataSetChanged();


                }
            }
            else {
                Toast.makeText(getActivity(),Message, Toast.LENGTH_LONG).show();
            }
        }
        mProgressHUD.dismiss();
    }
}

Pager适配器

公共类PremiumProjectAdapter扩展了Pageradapter {

private final Random random = new Random();
private ArrayList<PremiumData> mSize;
Context mContext;
LayoutInflater mLayoutInflater;
String ProjectID;
String path=CommonImagePath+"/uploads/projectOfMonth/orginal/";

//公共PremiumProjectAdapter(){//}

public PremiumProjectAdapter(Context contexts, ArrayList<PremiumData> count) {
    mSize = count;
    mContext=contexts;


}
@Override public int getCount() {
    return mSize.size();
}
@Override public boolean isViewFromObject(View view, Object object) {
    return view == object;
}
@Override public void destroyItem(ViewGroup view, int position, Object object) {
    view.removeView((View) object);
}

@Override public Object instantiateItem(ViewGroup view, final int position) {

    mLayoutInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View itemView = mLayoutInflater.inflate(R.layout.home_premium_layout, view, false);
    ImageView imageView = (ImageView) itemView.findViewById(R.id.premium_ProImage);
    TextView ProjectName = (TextView) itemView.findViewById(R.id.premium_ProName);
    TextView ProjectUnitPrice = (TextView) itemView.findViewById(R.id.premium_UnitPrice);
    TextView ProjectUnitBedroom = (TextView) itemView.findViewById(R.id.premium_UnitBedrooms);
    TextView ProjectAddress = (TextView) itemView.findViewById(R.id.premium_ProAddress);
    ImageView unshortlisted = (ImageView) itemView.findViewById(R.id.unshortlisted);
    ImageView shortlisted = (ImageView) itemView.findViewById(R.id.shortlisted);

    final PremiumData data = mSize.get(position);
    if (data.getProjectFavourite() != null) {

    if (data.getProjectFavourite().equals("ShortListed")) {

        shortlisted.setVisibility(View.VISIBLE);
        unshortlisted.setVisibility(View.GONE);
    } else {
        shortlisted.setVisibility(View.GONE);
        unshortlisted.setVisibility(View.VISIBLE);
    }
    }

    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N){
        ProjectUnitPrice.setText(Html.fromHtml(data.getPropertyUnitPriceRange(), Html.FROM_HTML_MODE_COMPACT));
    }else{
        ProjectUnitPrice.setText(Html.fromHtml(data.getPropertyUnitPriceRange()));
    }

    ImageLoader.getInstance().displayImage(path+data.getProjectOfMonthImage(), imageView);
    imageView.setScaleType(ImageView.ScaleType.FIT_XY);
    if(!data.getProjectName().equals("null") && data.getProjectName().length()>30){
        String s = data.getProjectName().substring(0, 25);
        String subString = s + "...";
        ProjectName.setText(subString);
    }
    else{
        ProjectName.setText(data.getProjectName());
    }
    ProjectUnitBedroom.setText(data.getPropertyUnitBedRooms());
    ProjectAddress.setText(data.getProjectBuilderAddress());
    imageView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent DetailsAction=new Intent(mContext, DetailsActivity.class);
            DetailsAction.putExtra("projectID",data.getProjectID());
            DetailsAction.putExtra("purpose",data.getPurpose());
            mContext.startActivity(DetailsAction);
        }
    });

    unshortlisted.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            if(!session.isLoggedIn()){
                Intent toLogin=new Intent(mContext, LoginActivity.class);
                CommonStrings.FromSearchIndex="true";
                mContext.startActivity(toLogin);

            }else{
                ProjectID=data.getProjectID();
                new ShortlistProject().execute();
            }


        }
    });

    shortlisted.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            ProjectID=data.getProjectID();
            new UnShortlistProject().execute();
        }
    });

    view.addView(itemView);
    return itemView;
}

private class ShortlistProject extends AsyncTask<String, Void, JSONObject> {
    JSONParser jsonParser = new JSONParser();
    String url=ApiLinks.AddShortListProject;
    ProgressHUD mProgressHUD;
    protected void onPreExecute(){

        mProgressHUD = ProgressHUD.show(mContext,null, true);
        super.onPreExecute();
    }
    protected JSONObject doInBackground(String... arg0) {
        HashMap<String,String> params=new HashMap<>();

        try {
            params.put("languageID",CommonStrings.languageID);
            params.put("userID",User.get(SessionManager.KEY_CUSTOMER_ID));
            params.put("projectID",ProjectID);
            params.put("userType",User.get(SessionManager.KEY_USERTYPE_ID));
            JSONObject json = jsonParser.SendHttpPosts(url,"POST",params);
            if (json != null) {
                return  json;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    protected void onPostExecute(JSONObject json) {
        if(json!=null) {
            String status=json.optString("status");
            String message=json.optString("message");
            if(status.equals("ok")){

                Toast.makeText(mContext,message,Toast.LENGTH_LONG).show();
                //SearchFragment.getInstance().onResume();
                HomeFragment.getInstance().async_premium();

            }else{
                Toast.makeText(mContext,message,Toast.LENGTH_LONG).show();
            }

        }
        mProgressHUD.dismiss();
    }

}
private class UnShortlistProject extends AsyncTask<String, Void, JSONObject> {
    JSONParser jsonParser = new JSONParser();
    String url=ApiLinks.RemoveShortListProject;
    ProgressHUD mProgressHUD;
    protected void onPreExecute(){

        mProgressHUD = ProgressHUD.show(mContext,null, true);
        super.onPreExecute();
    }
    protected JSONObject doInBackground(String... arg0) {
        HashMap<String,String> params=new HashMap<>();

        try {
            params.put("userID",User.get(SessionManager.KEY_CUSTOMER_ID));
            params.put("projectID",ProjectID);
            params.put("userType",User.get(SessionManager.KEY_USERTYPE_ID));
            JSONObject json = jsonParser.SendHttpPosts(url,"POST",params);
            if (json != null) {
                return  json;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    protected void onPostExecute(JSONObject json) {
        if(json!=null) {
            String status=json.optString("status");
            String message=json.optString("message");
            if(status.equals("ok")){
                Toast.makeText(mContext,message,Toast.LENGTH_LONG).show();
               // HomeFragment.getInstance().async_Premium();
                HomeFragment.getInstance().async_premium();
            }else{
                Toast.makeText(mContext,message,Toast.LENGTH_LONG).show();
            }
        }
        mProgressHUD.dismiss();
    }

}

就我能够理解您的问题,您想要适配器的最喜欢和不希望功能。请在下面使用此代码来实现:

public class CustomGridAdapterFoodDrink extends BaseAdapter {
    private Context mContext;
    private ProgressDialog loading;
    ArrayList<FoodDrink> foodDrinkArrayList = new ArrayList<>();
    SharedPreferences pref;
    String userId;
    String like_dislike_value = "Like";
    String likeValueStr = "1";
    boolean like = true;
    int positionVal = 444;
    HashMap<Integer,Boolean> state = new HashMap<>();
    public CustomGridAdapterFoodDrink(Context c, ArrayList<FoodDrink> foodDrinkArrayList) {
        mContext = c;
        this.foodDrinkArrayList = foodDrinkArrayList;
    }
    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return foodDrinkArrayList.size();
    }
    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return null;
    }
    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return 0;
    }
    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        View grid;
        LayoutInflater inflater = (LayoutInflater) mContext
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        if (convertView == null) {
            grid = new View(mContext);
            grid = inflater.inflate(R.layout.grid_single, null);
            TextView projectNamtTxtView = (TextView) grid.findViewById(R.id.projectName);
            TextView totalOfferText = (TextView) grid.findViewById(R.id.TotalOffers);
            ImageView merchantImage = (ImageView) grid.findViewById(R.id.merchantImage);
            final ImageView like_dislike_icon = (ImageView) grid.findViewById(R.id.like_dislike_icon);
            totalOfferText.setText(foodDrinkArrayList.get(position).getOffers());
            projectNamtTxtView.setText(foodDrinkArrayList.get(position).getProject_name());
            Glide.with(mContext)
                    .load(foodDrinkArrayList.get(position).getProject_photo())
                    .centerCrop()
                    .placeholder(R.drawable.review_pro_pic1)
                    .crossFade()
                    .into(merchantImage);

            like_dislike_icon.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    pref = getApplicationContext().getSharedPreferences("MyPref", MODE_PRIVATE);
                    userId = pref.getString("userId", null);
             /*       if(state.size()> 0){
                        like = state.get(position);*/
                        if (!like) {
                            like = true;
                           /* state.put(position,like);*/
                            like_dislike_icon.setImageResource(R.mipmap.like_it_act);
                            likeDislike2(foodDrinkArrayList.get(position).getID(), "1");
                        } else {
                            like = false;
                          /*  state.put(position,like);*/
                            like_dislike_icon.setImageResource(R.mipmap.like_it);
                            likeDislike2(foodDrinkArrayList.get(position).getID(), "0");
                        }
                  /*  } else {
                        like = true;
                        state.put(position,like);
                        like_dislike_icon.setImageResource(R.mipmap.like_it_act);
                        likeDislike2(foodDrinkArrayList.get(position).getID(), "1");
                    }*/

//                      if(positionVal !=position) {
//                          likeValueStr ="1";
//                          positionVal = position;
//                          likeDislike(foodDrinkArrayList.get(position).getID(), likeValueStr, like_dislike_icon);
//                      }
// else {
//                          likeValueStr ="0";
//                          likeDislike(foodDrinkArrayList.get(position).getID(), likeValueStr, like_dislike_icon);
//                      }
                }
            });
        } else {
            grid = (View) convertView;
        }
        return grid;
    }
    private void likeDislike(String merchantId, final String like_dislike, final ImageView imageView) {
        loading = ProgressDialog.show(mContext, "Loading ", "Please wait...", true, true);
        AsyncHttpClient client = new AsyncHttpClient();
        String url = getlikeUrl(userId, merchantId, like_dislike);
        client.setMaxRetriesAndTimeout(5, 20000);
        client.post(url, new AsyncHttpResponseHandler() {
            @Override
            public void onSuccess(String responseString) {
                try {
                    JSONObject _object = new JSONObject(responseString);
                    String status = _object.getString("success");
                    String msg = _object.getString("response");
                    if ("true".equalsIgnoreCase(status)) {
                        Toast.makeText(mContext, msg, Toast.LENGTH_LONG).show();
                        if (msg.equalsIgnoreCase("Like")) {
                            imageView.setImageResource(R.mipmap.like_it_act);
                        } else {
                            imageView.setImageResource(R.mipmap.like_it);
                        }
                    } else {
                        Toast.makeText(mContext, msg, Toast.LENGTH_LONG).show();
                    }
                    loading.dismiss();
//                    AppUtility.showToast(SignUp.this, message);
                } catch (JSONException e) {
                    e.printStackTrace();
                    new Global().saveReport("abc", e.getStackTrace(), e.toString());
                }
                loading.dismiss();
            }
            @Override
            public void onFailure(int statusCode, Throwable error, String content) {
            }
        });
    }
    private String getlikeUrl(String userId, String merchantId, String like_dislike) {
        String url = "";
        try {
            url = NetworkURL.URL
                    + "likeMerchant"
                    + "?user_id=" + URLEncoder.encode(new Global().checkNull(userId), "UTF-8")
                    + "&merchant_id=" + URLEncoder.encode(new Global().checkNull(merchantId), "UTF-8")
                    + "&like_dislike=" + URLEncoder.encode(new Global().checkNull(like_dislike), "UTF-8")
            ;
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
            new Global().saveReport("abc", e.getStackTrace(), e.toString());
        }
        return url;
    }
    private void likeDislike2(String merchantId, final String like_dislike) {
        loading = ProgressDialog.show(mContext, "Loading ", "Please wait...", true, true);
        AsyncHttpClient client = new AsyncHttpClient();
        String url = getlikeUrl(userId, merchantId, like_dislike);
        client.setMaxRetriesAndTimeout(5, 20000);
        client.post(url, new AsyncHttpResponseHandler() {
            @Override
            public void onSuccess(String responseString) {
                try {
                    JSONObject _object = new JSONObject(responseString);
                    String status = _object.getString("success");
                    String msg = _object.getString("response");
                    if ("true".equalsIgnoreCase(status)) {
                        Toast.makeText(mContext, msg, Toast.LENGTH_LONG).show();
                    } else {
                        Toast.makeText(mContext, msg, Toast.LENGTH_LONG).show();
                    }
                    loading.dismiss();
//                    AppUtility.showToast(SignUp.this, message);
                } catch (JSONException e) {
                    e.printStackTrace();
                    new Global().saveReport("abc", e.getStackTrace(), e.toString());
                }
                loading.dismiss();
            }
            @Override
            public void onFailure(int statusCode, Throwable error, String content) {
            }
        });
    }
}

最新更新