我使用PagerAdapter滑动图像,但没有正确通知

时间:2017-09-18 04:55:18

标签: android android-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();
    }
}

寻呼机适配器

公共类PremiumProjectAdapter扩展了PagerAdapter {

private final Random random = new Random();
private ArrayList<PremiumData> mSize;
Context mContext;
LayoutInflater mLayoutInflater;

String ProjectID;

String path=CommonImagePath+"/uploads/projectOfMonth/orginal/";

// public 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();
    }


}

1 个答案:

答案 0 :(得分:0)

至于我能够理解你的问题,你想通过适配器获得最喜欢和不受欢迎的功能。请使用以下代码来实现:

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) {

            }
        });
    }

}
相关问题