博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android Activity调用Dialog后的返回值方法
阅读量:5833 次
发布时间:2019-06-18

本文共 1027 字,大约阅读时间需要 3 分钟。

hot3.png

这个例子只是简单的返回一个String,而在实际需要时,可能需要在DIalog或非Activity(如ListView中的Adapter)中做复杂的操作后,返回值至主Activity。

    例如本人最近在做一个ListView中的Adapter包含按钮,在点击其中的按钮后需要刷新整个ListView,因此便需要以下方法传值。
    在Activity调用另一Activity时,可使用如下方法获得返回值:
    Intent sampleIntent = new Intent(this, NewActivity.class);
    startActivityForResult(sampleIntent , 1);
    但如果调用的是Dialog类,或其他非Activity类时,无法使用startActivityForResult()方法。
    此时,需使用另一种方法获得返回值。
    方法如下:
    假设:主Activity为MainActivity;被调用的Dialog类为SampleDialog。
    此时我们需定义一个接口类:
    interface MyListener{ 
        public void refreshActivity(String text);
    }
    在SampleDIalog的构造函数中传入MyListener:
    public MyListener (MyListener myListener){
       this.mMyListener = myListener;
    }
    并且在需要返回的地方调用refreshActivity()方法:
    mMyListener.refreshActivity();
    然后在MainActivity中实现MyListener接口,并在show Dialog时传入实现的myListener:
    private MyListener myListener = new MyListener(){
        @Override
        public void refreshActivity(String text){
                                this.mTextView1.setText(text);
        }
    }
    new SampleDialog(myListener).show;
    这样便能从Dialog返回需要的数据.
    若有更好的方法,请留言指教。本人也是超级菜鸟,学习当中。

转载于:https://my.oschina.net/zhangjie830621/blog/103053

你可能感兴趣的文章
python 异常
查看>>
百度账号注销
查看>>
mysql-This version of MySQL doesn’t yet support ‘LIMIT & IN/ALL/ANY/SOME 错误解决
查看>>
BIEE Demo(RPD创建 + 分析 +仪表盘 )
查看>>
Cocos2dx 3.0开发环境的搭建--Eclipse建立在Android工程
查看>>
基本概念复习
查看>>
重构第10天:提取方法(Extract Method)
查看>>
Android Fragment使用(四) Toolbar使用及Fragment中的Toolbar处理
查看>>
解决pycharm在ubuntu下搜狗输入法一直固定在左下角的问题
查看>>
多线程day01
查看>>
MySQL出现Access denied for user ‘root’@’localhost’ (using password:YES)
查看>>
通过Roslyn构建自己的C#脚本(更新版)(转)
查看>>
红黑树
查看>>
python调用windows api
查看>>
第四章 mybatis批量insert
查看>>
Java并发框架——什么是AQS框架
查看>>
【数据库】
查看>>
Win配置Apache+mod_wsgi+django环境+域名
查看>>
linux清除文件内容
查看>>
WindowManager.LayoutParams 详解
查看>>