当前位置: 代码迷 >> Android >> 在适配器中进行页面跳转后,怎么讲适配器所属页面从页面所属栈中清除
  详细解决方案

在适配器中进行页面跳转后,怎么讲适配器所属页面从页面所属栈中清除

热度:81   发布时间:2016-04-28 03:50:49.0
在适配器中进行页面跳转后,如何讲适配器所属页面从页面所属栈中清除
RT~~
在一个页面的list中绑定了自定义的适配器,通过点击适配器中所属的某个按钮进行页面跳转  
但是在跳转完后list所属的页面还在activity栈中  即没有finish()掉   
怎么样才能点击按钮后finish()掉list所属页面?
------解决思路----------------------
在创建子activity时把它加到一个队列t里去,子activity销毁时从队列里删除。
listview销毁时遍历这个队列,调用每子activity的finish方法。

------解决思路----------------------
引用:
Quote: 引用:

Quote: 引用:

我这里说的activity栈不是我自己定义的栈  
据我理解Android中每一个activity本身创建好后都会默认添加到一个系统默认的栈中的吧?
销毁的时候就会从栈中出栈   这也是为什么我们如果在进行页面跳转的时候如果没有在跳转前页面代码中finish()掉跳转前的页面,然后回退的话还是会回到这个页面中的啊   我的问题就是问在自定义适配器中如何在点击按钮进行跳转的时候把这个跳转前的页面给finish掉  因为这里不像平常直接页面中点击页面按钮跳转可以直接调用this.finish()   
所以求解决办法

这不是很简单,在你自己的适配器在构造方法时把activity传进来不就可以了。

class MyAdapter extends BaseAdapter{
   Activity act;
   public MyAdapter(Activity activity){
   act=activity;
   }
   
   public View getView(){
   button.setonClick(){
   Intent it=new Intent();
   startActivity(it);
   act.finish();
   }
   }
}

 这个方法确实是可以
那么问题来了...
我发现其实在调用适配器的页面activity中,调用构造方法声明适配器的时候其实传递的参数context就是对于的这个XXXActivity
啊   因为我在构造函数定义的时候用的俩参数一个是Context context,一个是对于页面XXXActivity  activity 
传参调用的时候传递的参数都是this啊    那么请问可不可以直接用context来调用finish()方法呢?
我试了一下context.finish()这个方法是没有的   即无法直接调用   那么是不是有什么其他方法可以直接通过context调用finish方法呢?  为了描述的清楚所以问题有点长  多多见谅    多谢赐教呀~~ 

用((Activity)context).finish()转一下就可以了,Context是Activity的父类
  相关解决方案