如何在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

回到顶部