如何在pageradpter中完成活动?
我使用pageradapter,其中有调用其他活动的按钮。调用第二个活动后,我可以完成pageractivity吗?我的pageradapter代码如下。方法finish()未定义为新的View.OnClickListener(){} 谢谢。如何在pageradpter中完成活动?
public class ImageAdapterFromRes extends PagerAdapter {     Context context; 
    ArrayList<String> textArray; 
    ArrayList<String> urlArray; 
    ArrayList<Bitmap> bitmapArray; 
    ImageView imageView; 
    TextView textreklama1; 
    Button btnZoznam; 
    public Activity activity; 
    private int[] GalImages = new int[] { 
      //Images from resource folder. 
     R.drawable.one, 
     R.drawable.two, 
     R.drawable.three 
    }; 
    ImageAdapterFromRes(Context context, ArrayList<String> textArray, ArrayList<String> urlArray, ArrayList<Bitmap> bitmapArray){ 
     this.context=context; 
     this.textArray=textArray; 
     this.urlArray=urlArray; 
     this.bitmapArray=bitmapArray; 
    } 
    @Override 
    public int getCount() { 
     return GalImages.length; 
    } 
    public Object instantiateItem(ViewGroup collection, int position) { 
     LayoutInflater inflater = (LayoutInflater) collection.getContext() 
     .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View view = inflater.inflate(R.layout.reklamator_new, null); 
     imageView = (ImageView) view.findViewById(R.id.imgreklama1); 
     imageView.setImageBitmap(bitmapArray.get(position)); 
     textreklama1 = (TextView) view.findViewById(R.id.textreklama1); 
     textreklama1.setText(textArray.get(position).toString()); 
     btnZoznam = (Button) view.findViewById(R.id.btnZoznam); 
     btnZoznam.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent i = new Intent(v.getContext(), SecondActivity.class); 
       Bundle extras = new Bundle(); 
       extras.putString("cat", "1"); 
       i.putExtras(extras); 
       context.startActivity(i); 
       //finish(); ???????? HOW FINISH ? 
      } 
     }); 
     ((ViewGroup) collection).addView(view, 0); 
     return view; 
     } 
     @Override 
     public void destroyItem(ViewGroup arg0, int arg1, Object arg2) { 
     ((ViewGroup) arg0).removeView((View) arg2); 
     } 
     @Override 
     public boolean isViewFromObject(View arg0, Object arg1) { 
     return arg0 == ((View) arg1); 
     } 
} 
回答:
我建议活动处理它做什么(你可以将其放入一个片段在稍后的日期)。
您可以简单地((Activity) context).finish(),但我倾向于favour composition over aggregation。
这里有一个快速片段:
public class ImageAdapterFromRes extends PagerAdapter {     OnPagerItemSelected mListener; 
    Context context; 
    ImageAdapterFromRes(Context context, ArrayList<String> textArray, ArrayList<String> urlArray, ArrayList<Bitmap> bitmapArray, 
     OnPagerItemSelected listener 
     ){ 
     this.context=context; 
     this.textArray=textArray; 
     this.urlArray=urlArray; 
     this.bitmapArray=bitmapArray; 
     this.mListener = listener; 
    } 
    @Override 
    public int getCount() { 
     return GalImages.length; 
    } 
    public Object instantiateItem(ViewGroup collection, int position) { 
     btnZoznam.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent i = new Intent(v.getContext(), SecondActivity.class); 
       Bundle extras = new Bundle(); 
       extras.putString("cat", "1"); 
       i.putExtras(extras); 
       context.startActivity(i); 
       //finish(); ???????? HOW FINISH ? 
       mListener.pagerItemSelected(); 
      } 
     }); 
    } 
    public interface OnPagerItemSelected { 
     void pagerItemSelected(); 
    } 
} 
注意有一个监听器,并单击某个项目时pagerItemSelected()方法被调用。
这意味着你可以这样做你的活动(或片段,或其他组件):
public class MyActivity extends Activity implements OnPagerItemSelected {     void setUpPager() { 
     new ImageAdapterFromRes(this, ..., ..., ..., this); 
    } 
    void pagerItemSelected() { 
     finish(); 
    } 
} 
回答:
你可以用铸造完成的活动:
((Activity) context).finish(); 以上是 如何在pageradpter中完成活动? 的全部内容, 来源链接: utcz.com/qa/266684.html





