2017-09-18 1 views
-4

J'ai utilisé PagerAdapter pour faire glisser des images et j'ai ajouté un bouton favori dans cette image glissante. Après avoir cliqué sur le bouton favori, l'image ne s'affiche pas correctement.J'ai utilisé PagerAdapter pour faire glisser les images et ne pas les notifier correctement

il est pour le chargement 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(); 
    } 
} 

adaptateur pager

PremiumProjectAdapter public class étend 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() {//}

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


} 
+0

s'il vous plaît ajouter un code –

Répondre

0

Pour autant que je suis en mesure de comprendre votre question que vous voulez fonctionnalité préférée et par l'adaptateur Supprimer des favoris. S'il vous plaît utiliser ce code ci-dessous pour y parvenir:

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

      } 
     }); 
    } 

} 
+0

i utilisé adaptateur téléavertisseur pas adaptateur de base –

+0

correct, mais vous pouvez utiliser la logique comme référence et mettre en œuvre dans votre code –

+0

i posté le code ci-dessus que je l'ai utilisé –