2015-04-03 72 views
-3

大家好我有一個問題在android 如何從活動類調用非活動類中的方法? 對於例如: 我有一個活動類從活動類調用java類

public class1 extends Activity 
{ 
public void onCreate() 
{ 
     class2.main(null);//this code does not work neither does creating an object 
} 

} 
//class 2 
public class2 { 
public static void main() 
{//code 
} 
    } 
+0

你想在主要功能中做什麼? – 2015-04-03 09:16:27

+0

爲什麼你通過'null'?只需調用'class2.main();'它應該可以工作。 – ByteHamster 2015-04-03 09:21:47

+0

在嘗試構建本機Android應用程序之前,您確實需要了解Java編程的基礎知識。 – Arlind 2015-04-03 09:28:10

回答

1

的主要方法是不期望任何參數,以便不通過給方法。看看下面的代碼:

public Class1 extends Activity { 
     public void onCreate(){ 

       Class2.main(); // remove null 
      } 

    } 
    /////////////////////////////////////////////////// 
    public class Class2 { 
      public static void main() { //code } 
     } 

你說,它不創建一個對象,主要方法是靜態的,這意味着它屬於的類沒有任何對象,這就是爲什麼你不必須創建類別對象。如果你想創建類的對象 Class2中使用下面的代碼:

Class2 class2 = new Class2(); // Creating Object; 
class2.main() // calling method here 

如果SomeClass的是在不同的包,你必須導入它。

作爲類名的命名約定以大寫字母開頭。

-1

請確保您將class2class1放在同一個包中,或者您已在活動類文件的頂部做出正確的導入聲明。

你做了之後,還有使用方法從另一個類兩種方式:

1:請Class2中的一個實例,並調用它的方法

Class2 class2instance = new Class2(); 
class2instance.method(); 

第二:如果你的方法是靜態的,你可以用類名直接調用它

Class2.staticMethod(); 

所以,如果你可以編輯你的非活性類,嘗試使你想用靜態的,或者創建一個實例的方法然後調用它的方法。

此外,在您的代碼示例中,class2中定義的主方法不期待任何參數,因此請將null放在方法調用中。