2016-03-28 44 views
0

我有这个ViewPager:ViewPager与OnClickListener

public class CustomSwipeAdapterMain extends PagerAdapter { 

    private Context context; 
    Activity activity; 
    com.android.volley.toolbox.ImageLoader imageLoader = AppController.getInstance().getImageLoader(); 
    List<SlidingFeedItemMain> lFeedItemsMain; 
    SlidingFeedItemMain slidingFeedItemMain; 
    FragmentManager fragmentManager; 
    WindowManager windowManager; 

    public CustomSwipeAdapterMain(Context context, Activity activity, List<SlidingFeedItemMain> lFeedItemsMain, 
            FragmentManager fragmentManager, WindowManager windowManager) { 
     this.context = context; 
     this.activity = activity; 
     this.lFeedItemsMain = lFeedItemsMain; 
     this.fragmentManager = fragmentManager; 
     this.windowManager = windowManager; 
    } 

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

    @Override 
    public boolean isViewFromObject(View view, Object object) { 
     return view == object; 
    } 

    @SuppressLint("SetTextI18n") 
    @Override 
    public Object instantiateItem(final ViewGroup container, int position) { 

     LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View itemView = layoutInflater.inflate(R.layout.feed_sliding_item, container, false); 

     if (imageLoader == null) { 
      imageLoader = AppController.getInstance().getImageLoader(); 
     } 

     //region FindViews 
     TextView textViewtext = (TextView) itemView.findViewById(R.id.txtStatusMsg); 
     TextView textViewName = (TextView) itemView.findViewById(R.id.name); 
     TextView textViewTime = (TextView) itemView.findViewById(R.id.timestamp); 
     TextView textViewQuotations = (TextView) itemView.findViewById(R.id.textViewQuotations); 
//  TextView textViewAuthor = (TextView) itemView.findViewById(R.id.textViewAuthor); 
     final ImageView imageViewtext = (ImageView) itemView.findViewById(R.id.feedImage1); 
     final ProgressBar progressBarFeedItem = (ProgressBar) itemView.findViewById(R.id.progressBarFeedItem); 
     final CircleImageView profilePic = (CircleImageView) itemView.findViewById(R.id.profilePic); 
     final ImageView imageViewLike = (ImageView) itemView.findViewById(R.id.imageViewLike); 
     final RelativeLayout relFullFeedItem = (RelativeLayout) itemView.findViewById(R.id.relFullFeedItem); 
     //endregion 

     //region Set text color in relation to theme 
     textViewtext.setTextColor(ContextCompat.getColor(context, R.color.Black)); 
     //endregion 

     if (container.isShown()) { 
      //region set data to views 
      slidingFeedItemMain = lFeedItemsMain.get(position); 
      progressBarFeedItem.setVisibility(View.VISIBLE); 

      profilePic.setId(Integer.parseInt(slidingFeedItemMain.getStrUserId())); 
      container.setTag(2); 
      container.setId(3); 
      textViewtext.setText(slidingFeedItemMain.getStrtext()); 
      textViewName.setText(slidingFeedItemMain.getStrUsername()); 
      textViewTime.setText(DateUtils.getRelativeTimeSpanString(
        Long.parseLong(slidingFeedItemMain.getStrTimestamp()), 
        System.currentTimeMillis(), DateUtils.FORMAT_SHOW_DATE)); 
      textViewQuotations.setText(slidingFeedItemMain.getText() + " " + activity.getString(R.string.text)); 

      if (slidingFeedItemMain.getStrtextImageName().equals("null")) { 
       imageViewtext.setVisibility(View.GONE); 
       progressBarFeedItem.setVisibility(View.GONE); 
      } else { 
       if (!slidingFeedItemMain.getStrtextImageName().endsWith(".jpg")) { 
        loadGif(imageViewtext, URLs.BASE_URL_START + 
          slidingFeedItemMain.getStrtextImageName() + URLs.BASE_URL_ENDE, progressBarFeedItem); 
        Log.e("ID", "is: " + slidingFeedItemMain.getStrtextImageName()); 
       } else { 
        loadImage(imageViewtext, URLs.BASE_URL_IMAGES + slidingFeedItemMain.getStrtextImageName(), progressBarFeedItem); 
       } 
       loadImage(profilePic, URLs.BASE_URL_IMAGES + slidingFeedItemMain.getStrProfileImageName(), null); 
      } 

      //endregion 
     } 

     //region click listeners 
//  profilePic.setOnClickListener(new View.OnClickListener() { 
//   @Override 
//   public void onClick(View v) { 
//    Intent i = new Intent(context, ProfileActivity.class); 
//    Log.e("TAG", "user " + v.getId()); 
// 
////    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
////     profilePic.setTransitionName(activity.getString(R.string.transition_name_profilePic)); 
//// 
////     ActivityOptionsCompat options = ActivityOptionsCompat. 
////       makeSceneTransitionAnimation(activity, profilePic, profilePic.getTransitionName()); 
////     ActivityCompat.startActivity(activity, i, options.toBundle()); 
////    } else { 
////     activity.startActivity(i); 
////     activity.overridePendingTransition(R.anim.gehnachlinks, R.anim.stay); 
////    } 
//   } 
//  }); 
//  imageViewLike.setOnClickListener(new View.OnClickListener() { 
//   @Override 
//   public void onClick(View v) { 
//    Toast.makeText(context, "LIKE", Toast.LENGTH_SHORT).show(); 
//    moveViewToScreenCenter(imageViewLike, relFullFeedItem); 
//   } 
//  }); 

     itemView.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Log.e("BLA","asa"); 
      } 
     }); 
     //endregion 



     container.addView(itemView); 
     return itemView; 
    } 

    @Override 
    public void destroyItem(ViewGroup container, int position, Object object) { 
     container.removeView((RelativeLayout) object); 
    } 

    private void setlAuthors(int idOftext) { 
     AuthorsItem item; 
     for (int i = 0; i < 20; i++) { 
      item = new AuthorsItem(); 
      item.setStrUsername("hallo"); 
      lAuthors.add(item); 
     } 
     adapter.notifyDataSetChanged(); 
    } 

    private void moveViewToScreenCenter(final ImageView view, RelativeLayout relativeLayout) { 
     DisplayMetrics dm = new DisplayMetrics(); 
     windowManager.getDefaultDisplay().getMetrics(dm); 
     int statusBarOffset = dm.heightPixels - relativeLayout.getMeasuredHeight(); 

     int originalPos[] = new int[2]; 
     view.getLocationOnScreen(originalPos); 

     int xDest = dm.widthPixels/2; 
     xDest -= (view.getMeasuredWidth()/2); 
     int yDest = dm.heightPixels/2 - (view.getMeasuredHeight()/2) - statusBarOffset; 

     TranslateAnimation anim = new TranslateAnimation(0, xDest - originalPos[0], 0, yDest - originalPos[1]); 
     anim.setDuration(1000); 
     anim.setFillAfter(true); 
     anim.setFillEnabled(true); 
     view.startAnimation(anim); 
     anim.setAnimationListener(new Animation.AnimationListener() { 
      @Override 
      public void onAnimationStart(Animation animation) { 

      } 

      @Override 
      public void onAnimationEnd(Animation animation) { 
       Animation animation1 = AnimationUtils.loadAnimation(context, R.anim.from_top); 
       view.startAnimation(animation1); 
       view.setColorFilter(ContextCompat.getColor(context, R.color.green)); 
      } 

      @Override 
      public void onAnimationRepeat(Animation animation) { 

      } 
     }); 
    } 

    private void loadImage(final ImageView imageView, String url, final ProgressBar progressBar) { 
     Glide.with(context) 
       .load(url) 
       .asBitmap() 
       .error(R.drawable.error_image) 
       .thumbnail(0.1f) 
       .listener(new RequestListener<String, Bitmap>() { 
        @Override 
        public boolean onException(Exception e, String model, Target<Bitmap> target, boolean isFirstResource) { 
         return false; 
        } 

        @Override 
        public boolean onResourceReady(Bitmap resource, String model, Target<Bitmap> target, boolean isFromMemoryCache, boolean isFirstResource) { 
         if (progressBar != null && progressBar.getVisibility() == View.VISIBLE) { 
          progressBar.setVisibility(View.GONE); 
         } 
         imageView.setImageBitmap(resource); 
         return false; 
        } 
       }) 
       .diskCacheStrategy(DiskCacheStrategy.ALL) 
       .into(imageView); 
    } 

    private void loadGif(final ImageView imageView, String url, final ProgressBar progressBar) { 
     Glide.with(activity) 
       .load(url) 
       .thumbnail(0.1f) 
       .error(R.drawable.error_image) 
       .diskCacheStrategy(DiskCacheStrategy.SOURCE) 
       .fitCenter() 
       .into(new GlideDrawableImageViewTarget(imageView) { 
        @Override 
        public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> animation) { 
         super.onResourceReady(resource, animation); 
         //check isRefreshing 
         imageView.setImageDrawable(resource); 
         if (progressBar != null && progressBar.getVisibility() == View.VISIBLE) { 
          progressBar.setVisibility(View.GONE); 
         } 
        } 
       }); 
    } 
} 

最主要的是该地区OnClickListeners。我想添加一个onClick监听器到我的完整的PagerAdapter项目中。我试图删除任何onclicklisteners,但它不工作以及...

如何添加一个onClick监听器到完整的项目?

回答

0

如何将监听器放在使用CustomSwipeAdapterMain的ViewPager上?

adapter = new CustomSwipeAdapterMain(inflater,container); 
myViewPager.setAdapter(adapter); 

myViewPager.setOnClickListener(new ViewPager.OnClickListener() { 
    // code here 
}); 
相关问题