2013-08-04 151 views
0

好的我在java類中是一個完整的newb。我有一個公共方法,動態顯示一些Linearlayouts與他們的一些東西。例如,這個方法(public void methodA)在ClassA.java中,那麼我想從ClassB.java內部調用methodA。這兩個類都擴展了Activity,並且在OnCreate方法中調用了methodA。來自其他類的調用方法

ClassA.java

public class ClassA extends Activity{ 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     methodA(); 
    } 
    public void methodA() { 
     //Do Stuff 
     /* This uses: 
     * Package Manager 
     * Buttons using(this) 
     * Linear Layouts using(this) 
     * TextViews using(this) 
     * findViewById() 
     * startActivity 
     */ 
    } 

} 

ClassB.java

public class ClassB extends Activity{ 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     methodA(); //How do I do this 
    } 
} 

回答

1

我很清楚這種方法是特定於第一個活動的,這意味着它不應該在第二個活動中調用。您可以重新實現在第二個活動,或者,如果這些活動都差不多,你有兩個選擇(不這樣做,如果他們不!):

  • 繼承了第二個活動第一。
  • 將這兩個活動合併爲一個並使用不同的意圖啓動它們並採取相應的行動。

第二種方法比較容易維護,所以我更喜歡它比第一種方法更簡單。

+0

爲什麼我們無法參考其他活動? –

+0

@TarunDroid Android自己管理活動,它不提供任何方式來獲取它,因爲它違背了Android設計。當然,你可以自己創建實例化活動的類,但是沒有什麼意義。 – Malcolm

+0

我在一些細節上添加了一些細節,如果它沒有足夠的細節請說,我會提供:) – Nick

0
類B級A的

實例瞭解創建,然後就可以從B類調用治法

公共類ClassB的擴展活動{

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    //MethodA(); //How do I do this 
    ClassA a=new ClassA(); 
    a.MethodA(); 
} 

}