大家好,我在android中有一个问题 如何从活动类中调用非活动类中的方法? 例如: 我有一个活动类
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 :(得分:1)
主要方法不期望任何参数,因此不要将 null 传递给方法。请参阅以下代码:
public Class1 extends Activity {
public void onCreate(){
Class2.main(); // remove null
}
}
///////////////////////////////////////////////////
public class Class2 {
public static void main() { //code }
}
你说它没有创建对象,主要方法是静态的,这意味着它属于类而不属于任何对象,这就是为什么你不必创建 Class2 类型的对象。如果您想创建 Class Class2的对象,请使用以下代码:
Class2 class2 = new Class2(); // Creating Object;
class2.main() // calling method here
如果 SomeClass 位于不同的套餐中,则必须将其导入。
作为类名的命名约定,以大写字母开头。
答案 1 :(得分:-1)
确保您的class2
与class1
位于同一个包中,或者您已在活动类文件的顶部输入了正确的导入语句。
完成后,有两种方法可以使用另一个类的方法:
1st:创建class2的实例并在其上调用方法
Class2 class2instance = new Class2();
class2instance.method();
第二:如果你的方法是静态的,你可以直接用类名
来调用它Class2.staticMethod();
因此,如果您可以编辑非活动类,请尝试使用静态方法,或者创建类的实例,然后在其上调用方法。
此外,在您的代码示例中,class2
中定义的主方法不期望任何参数,因此请在方法调用中删除null
。