如何从另一个类中侦听方法以停止VideoView-Android,Java

如何从另一个类中侦听方法以停止VideoView-Android,Java,java,android,class,listener,android-videoview,Java,Android,Class,Listener,Android Videoview,我在从另一个类调用方法时遇到问题。我有这门课 protected class ViewHolder { protected VideoView itemVideo; protected ImageView itemBackgroundBlack; protected ImageView itemPlayIcon; } 我在另一个类中有这个方法,它在单击itemPlayIcon时播放itemVideo public class CategoryItemAdapter e

我在从另一个类调用方法时遇到问题。我有这门课

protected class ViewHolder { 
    protected VideoView itemVideo;
    protected ImageView itemBackgroundBlack;
    protected ImageView itemPlayIcon; }
我在另一个类中有这个方法,它在单击itemPlayIcon时播放itemVideo

public class CategoryItemAdapter extends PagerAdapter {
    public void setItemInfoView(int position, final ViewHolder holder) {
        holder.itemPlayIcon.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                holder.itemPlayIcon.setVisibility(View.INVISIBLE);
                holder.itemBackgroundBlack.setVisibility(View.VISIBLE);
                holder.itemVideo.setVisibility(View.VISIBLE);
                holder.itemVideo.start();
            }
        });
    }
}
另外还有一节课

public class CategoryItemActivity extends FragmentActivity{
     protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.category_item_layout);

          init();
     }

     private void init() {
          final ViewPager pager = (ViewPager) findViewById(R.id.pager);
          pager.setAdapter(adapter);
          pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int i, float v, int i2) {
            }

            @Override
            public void onPageSelected(int i) {
              int x = imageViews.get(i).getMeasuredWidth() * i + 
              imageViews.get(i).getMeasuredWidth() / 2;                       
              x = x - getWindowManager().getDefaultDisplay().getWidth() / 2;
              scrollView.smoothScrollTo(x, scrollView.getScrollY());

              for(int k = 0; k < imageViews.size(); k++) {
                  imageViews.get(k).setVisibility(View.VISIBLE);
              }
              imageViews.get(i).setVisibility(View.GONE);
            }

            @Override
            public void onPageScrollStateChanged(int i) {
            }
          });
      }
  }
公共类CategoryItemActivity扩展了FragmentActivity{
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.category\u item\u布局);
init();
}
私有void init(){
final ViewPager pager=(ViewPager)findviewbyd(R.id.pager);
寻呼机设置适配器(适配器);
pager.setOnPageChangeListener(新的ViewPager.OnPageChangeListener(){
@凌驾
页面上的公共无效已滚动(整数i、浮点v、整数i2){
}
@凌驾
已选择页面上的公共无效(int i){
int x=imageViews.get(i).getMeasuredWidth()*i+
get(i).getMeasuredWidth()/2;
x=x-getWindowManager().getDefaultDisplay().getWidth()/2;
scrollView.smoothScrollTo(x,scrollView.getScrollY());
对于(int k=0;k

我想在页面滚动时停止itemVideo(表示使用了onPageScrollStateChanged()。我需要一个听众,我知道,但我不能处理它。请帮忙。谢谢。

您可以实现与其他类别的接口,并在视频播放结束时处理该接口

必须将holderView类实例传递给CategoryItemActivity,然后才能从CategoryItemActivity调用holderView类的stop方法。如果您直接传递类上下文,它将导致耦合。所以你必须使用超级类的概念