2011-04-22 106 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