分享

如何在另外一个类里面获得某个activity的实例?

 gearss 2016-05-25

【阿里云限时折扣】真正免费.com.xin域名0元抢>>> ?  

解释:

我的意思是在我的工程里面的另外一个独立的类调用主界面UI所对应的activity。

我并不是要启动一个acitiviy,我只是在另外一个类里面想获得主界面的UI的activity的实例,然后交换一些数据。

cookqq cookqq
发帖于 4年前
12回/6683阅

按票数排序  显示最新答案   共有12个答案 (最后回答: 1年前 )

    0
  • cookqq cookqq 4年前

    我现在是这样搞的:

    把所有的activity放入一个private static Stack<Activity> activityStack;中,然后使用这个方法遍历

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    /**
         * 根据activity的 名字获得activity的实例
         * */
        @SuppressWarnings("unchecked")
        public <T extends Activity> T getActivity(Class<T> cls){ 
            Activity act = null;
            for (int i = 0, size = activityStack.size(); i < size; i++){
                act =  activityStack.get(i);
                if(act.getClass() == cls){ 
                    return (T)act; 
                }
            }
            return null
        }
    1
    大牛们还有没有更好的方法?请指导?

    评论(0)| 引用此答案| 举报 (2012-11-12 16:15)
  • 0
  • cookqq cookqq 4年前
    在线等待/
    评论(0)| 引用此答案| 举报 (2012-11-12 15:52)
  • 0
  • cookqq cookqq 4年前
    怎么没人回答啊 
    评论(0)| 引用此答案| 举报 (2012-11-12 15:53)
  • 0
  • cookqq cookqq 4年前
    期待高手解决如何获得实例···
    评论(0)| 引用此答案| 举报 (2012-11-12 15:56)
  • 0
  • 狄仁傑 狄仁傑 4年前

    class A{

    public class A(Activity B){}

    }

    --- 共有 1 条评论 ---
    评论(1)| 引用此答案| 举报 (2012-11-12 16:01)
  • 0
  • fneg fneg 4年前
    交换数据之类的可以通过发送Broadcase啊!不用获取另一个Activity的实例了吧
    评论(0)| 引用此答案| 举报 (2012-11-12 16:04)
  • 0
  • 狄仁傑 狄仁傑 4年前

    引用来自“狄仁傑”的答案

    class A{

    public class A(Activity B){}

    }

    反正是獲取實例
    评论(0)| 引用此答案| 举报 (2012-11-12 16:05)
  • 0
  • cookqq cookqq 4年前
    难道异步接收到数据后,发个广播信息,然后在每个activity中监听一下,是否自己的信息。但是我的异步介绍数据很多,并且数据类型也很多,这样还不累死啊
    评论(0)| 引用此答案| 举报 (2012-11-12 16:07)
  • 0
  • 爱潜水的鱼 爱潜水的鱼 3年前

    楼主这样试试看看可不可以:

    假设你的主界面的UI的activity的l类名为MainActivity,在其中做申明,并实例化它,如下:

    public class MainActivity{

           public static MainActivity instance = null;

           。。。


           @Override
           public void onCreate(Bundle savedInstanceState) {
               super.onCreate(savedInstanceState);
              setContentView(R.layout.main);

               instance = this;

            。。。}

    }

    另外一个类里面获取其实例:MainActivity.instance;

    评论(0)| 引用此答案| 举报 (2012-12-12 16:30)
  • 0
  • cookqq cookqq 3年前
    这个没有试过啊 ,有待于研究

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多