2011-04-22 102 views
2

我有两个类。 Class1和Class2 - 都扩展了Activity。启动活动后调用类方法

Class1在程序启动时启动,当你点击一个按钮时,它的目的是滑动到Class2 - 这可以正常工作。

然而Class2中有我想改变这取决于按钮上的文字被点击一个TextView - 但我不能为我的生活工作如何做到这一点

我使用startActivity( Class1.this,Class2.class);滑过它显然创建Class2的新实例

我也试着创建一个Class2的实例,然后调用startActivity(Class1.this,myVar.getClass());

但结果是一样的,任何想法我怎么称为Class2.someMethod();以便它影响新显示的Class2实例?还是我以这种错误的方式去做?

在此先感谢!

回答

4

我正在使用startActivity(Class1.this,Class2.class);显然创造了Class2的新实例

不,你不是,因为那样不会编译。您可能正在使用:

startActivity(new Intent(Class1.this,Class2.class)); 

我也尝试创建Class2中的一个实例,然后调用startActivity(Class1.this,myVar.getClass());

那也不会编译。这里是startActivity()的文档。

任何想法如何称为Class2.someMethod();以便它影响新显示的Class2实例?

你不知道。

还是我在做这个错误的方式?

如果你想将数据传递到新的Activity - 和数据很简单,就像你可能会放在一个URL参数在Web应用程序 - 然后将其打包为Intent额外:

Intent i=new Intent(Class1.this,Class2.class)); 
i.putExtra("some key", "some value"); // there are many different types of data you can package 
startActivity(i); 

然后,在Class2onCreate()中,您可以拨打getIntent().getStringExtra("some key")来检索数据。

+0

谢谢你,我做了一些研究,发现额外为做到这一点 的唯一真正的方法只是要注意: 我也尝试创建Class2中的一个实例,然后调用startActivity(Class1.this,myVar的。的getClass()); 这也不会编译。 这确实编译.....问题是从来没有得到它的工作,它只是传递数据。 – James 2011-04-22 15:40:19