2016-02-13 94 views
0

我想知道一个活动的对象是什么,当我通过一个Intent开始叫活动的对象。什么是由一个Intent

这意味着:我怎样才能调用活动活动的对象。或者我得到了错误的东西,活动是由对象表示的?

例:MainActivity我做的:

ShowExampleScreen = new Intent(MainActivity.this, ExampleClass.class); 
startActivity(ShowExampleScreen); 

public class ExampleClass{ 

    oncreate(Stuff in on create) 

    public void myFunction(){ my stuff} 
} 

我怎样才能在其他类使用myFunc的未声明的静态? 我如何获取由Intent启动的活动的对象?

+1

为什么您需要由Intent启动的活动对象。当Intent被触发时,它将启动由ExampleClass表示的Activity。确保ExampleClass中延伸活动,并在清单文件 – chaitanya

+0

是,在活动开始的希望宣告,但例如当我想myFunc的是一个文本框二传手类,我想从别的地方调用它,我必须创建的对象ExampleClass中。我想这个对象为对象由意向推出这样我就可以设定在activites视图 – Tobias

+1

什么是你期待的答案显示的textviews?你不应该从其他活动中调用活动方法 –

回答

0

有多种方式做到这一点,这里有他们夫妇,我使用:

  • 从另一个类/方法:

    只是传递活动作为参数,因为您想要最近的活动对象,所以您不希望将其存储在活动被销毁后可能变为null的地方。

  • 从在其他类很深的方法:

    我真的不建议这一点,但我这样做有时,刚刚创建活动本身活动的静态对象,并确保您指定它的每一个活动被更新的时候,让我们在的onResume方法说或的onCreate

    public static Activity app; //in your Activity as a field (instance variable) 
    
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        app = this; 
    } 
    
  • 从片段:

    MyActivity应用程式=(MyActivity)getActivity(); // getActivity()是一个片段方法。

+0

谢谢,我认为第一个答案是答案。我现在想通过创建一个底层数据存储类,以便在主Activity启动时创建一个对象。然后,我的第二个屏幕活动仅将数据从底层数据对象中收集出来。所以我不需要处理这个活动对象的东西。你能告诉我哪种方法更“干净”吗? – Tobias

+0

最好的办法是全部时间作为参数传递。这是最安全的方式,但有时你需要另一种方式,所以取决于你,但你需要小心并记录下来。 –

0

在Android中,这是活动的生命周期是如何工作的: enter image description here

我建议你开始reading from here拿到第一清除了基础。

按照准则,你不应该从其他

调用一个活动的方法。然而,您可以使用startActivityForResult。即您可以启动活动并返回结果。 See this为实现

相关问题