如何在listview的adapter中关闭listview所在的activity
2015-07-23 10:42
281 查看
假如我们需要在listview的adapter中的某个控件如textview中关闭listview所在的activity(暂且称为主activity吧),我们改怎么做?
刚开始我也不知道怎么获取主activity,有一个比较笨的方法,那就是在主activity中定义一个public方法,在那个public方法中调用主activity的finish()方法,但是这个方法使类极不安全,所以我们还是另找他法。
一般来说我们会传入一个Context变量,来使我们方便的得到LayoutInflater,能不能利用这个Context变量呢?
答案是肯定的,一般我们初始化adapter都是类似这样的方式:
对应的构造函数是这样的:
所以这里的Context是MyListActivity.this,那么我们将context转化不就行了?
事实证明是可以的,Well done!
刚开始我也不知道怎么获取主activity,有一个比较笨的方法,那就是在主activity中定义一个public方法,在那个public方法中调用主activity的finish()方法,但是这个方法使类极不安全,所以我们还是另找他法。
一般来说我们会传入一个Context变量,来使我们方便的得到LayoutInflater,能不能利用这个Context变量呢?
答案是肯定的,一般我们初始化adapter都是类似这样的方式:
listAdapter = new MyListAdapter(MyListActivity.this, R.layout.activity_list, itemList);
对应的构造函数是这样的:
public MyListAdapter(Context context, int textViewResourceId,List objects)
所以这里的Context是MyListActivity.this,那么我们将context转化不就行了?
holder.tvLastTipRight.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // if(context instanceof Activity)同样效果 if(Activity.class.isInstance(context)) { // 转化为activity,然后finish就行了 Activity activity = (Activity)context; activity.finish(); } } });
事实证明是可以的,Well done!
相关文章推荐
- 获取当前屏幕显示的viewcontroller
- 开启struts2自带的开发模式常量
- 随笔
- 设计一个接口,返回一组三角形的有序的数据集合
- IOS开发之UITableView
- python写的批量操作远程主机脚本(命令执行,上传、下载文件)
- VS快捷键小技巧
- 严重: Exception starting filter struts2 java.lang.reflect.InvocationTargetException - Class: com.opens
- postgress 表字段应该为小写
- [复仇者联盟]入会邀请
- Swift之 ? 和 !用法
- Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程
- GCD 深入理解(二)
- 股票英语
- MyBatis-Spring MVC 整合示例(带源码)
- 软件测试开放题总结
- 网络通信 001:TCP 的那些事儿(上)
- android studio 中怎么使用adb无线调试
- linux下统计当前目录下文件个数
- apk 签名打包后 百度地图key验证失败