2017-09-02 4 views
1

私の活動の1つはViewPagerを使用してイメージをスワイプし、イメージを押すと別のアクティビティを開始します。新しいアクティビティを開始する前に、私はactivity_layoutにあるアイテムをアニメーション化するためにこのlibrary:https://github.com/daimajia/AndroidViewAnimationsを使用します。問題はlibraryViewPagerのアクティビティレイアウト要素クラス

Library example:

YoYo.with(Techniques.FadeIn) 
      .duration(2100) 
      .repeat(0) 
      .playOn(findViewById(R.id.settingsButton)); 

ViewPagerAdapter:

public class ViewPagerAdapter extends PagerAdapter{ 

List<Integer> lstCrates; 
Context context; 
LayoutInflater inflater; 

public ViewPagerAdapter(List<Integer> lstImages, Context context) { 
    this.lstCrates = lstImages; 
    this.context = context; 
    inflater = LayoutInflater.from(context); 
} 

@Override 
public Object instantiateItem(ViewGroup container, final int position) { 
    View view = inflater.inflate(R.layout.list_item, container, false); 
    ImageView swipeableCrate = (ImageView)view.findViewById(R.id.swipeableCrate); 
    swipeableCrate.setImageResource(lstCrates.get(position)); 

    view.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (position == 0) { 
       Intent intent = new Intent(context, Gamescom.class); 
       context.startActivity(intent); 
       if (context instanceof Activity) { 
        ((Activity) context).overridePendingTransition(R.anim.animation1, R.anim.animation2); 
       } 

      } 
      if (position == 1) { 
       Intent intent = new Intent(context, MainActivity.class); 
       context.startActivity(intent); 
       if (context instanceof Activity) { 
        ((Activity) context).overridePendingTransition(R.anim.animation1, R.anim.animation2); 
       } 
      } 
      if (position == 2) { 
       Intent intent = new Intent(context, Main2Activity.class); 
       context.startActivity(intent); 
       if (context instanceof Activity) { 
        ((Activity) context).overridePendingTransition(R.anim.animation1, R.anim.animation2); 
       } 
      } 
     } 
    }); 

    container.addView(view); 
    return view; 
} 

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

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

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

に、必要に応じて、私はfindViewByIdを使用することはできませんので、私のViewPagerAdapterはActivityクラスではない、これは私が使用することができる方法であることですこのライブラリは私のViewPagerAdapterにありますか?

答えて

2

あなたは、アダプタにメンバーとしてcontextを持っている場合は、あなたが好きそれを使用することができます。

YoYo.with(Techniques.FadeIn) 
      .duration(2100) 
      .repeat(0) 
      .playOn(((MainActivity)context).findViewById(R.id.settingsButton)); // MainActivity will be replaced with the name of your Activity 
+0

、それが働いた – emiraslan

+1

を助けた場合の答えとして、それを受け入れるご検討ください!どうもありがとう! –

関連する問題