Android的调用一个方法从另一个类方法、Android

2023-09-12 04:20:00 作者:不萌不要钱

我知道,重复这个问题,但我无法找到在互联网上的答案。

我要打电话从其他类中的方法。

我有1类和类2。

在2级我有这个方法:

 公共无效updateEmployee()方法{
    //一些code
}
 

我要打电话从1级的方法。

感谢您的任何答复。

----编辑----

 最后按钮为btnUpdate =(按钮)findViewById(R.id.btnUpd);
   btnUpdate.setOnClickListener(新View.OnClickListener(){
     公共无效的onClick(视图v){
             员工updEmple =新员工();
             updEmple.UpdateEmployee();

    }
    });
 
android模块调用另一个模块中的方法,使用android studio导入模块的两种方法 超详细 ...

---- LogCat中---

  05-28 16:30:44.030:E / AndroidRuntime(25198):致命异常:主要
05-28 16:30:44.030:E / AndroidRuntime(25198):显示java.lang.NullPointerException:需要的println消息
05-28 16:30:44.030:E / AndroidRuntime(25198):在android.util.Log.println_native(本机方法)
05-28 16:30:44.030:E / AndroidRuntime(25198):在android.util.Log.v(Log.java:116)
05-28 16:30:44.030:E / AndroidRuntime(25198):在and.net.Employee.UpdateEmployee(Employee.java:77)
05-28 16:30:44.030:E / AndroidRuntime(25198):在and.net.AndActivity $ 2.onClick(AndActivity.java:51)
05-28 16:30:44.030:E / AndroidRuntime(25198):在android.view.View.performClick(View.java:2485)
05-28 16:30:44.030:E / AndroidRuntime(25198):在android.view.View $ PerformClick.run(View.java:9080)
05-28 16:30:44.030:E / AndroidRuntime(25198):在android.os.Handler.handleCallback(Handler.java:587)
05-28 16:30:44.030:E / AndroidRuntime(25198):在android.os.Handler.dispatchMessage(Handler.java:92)
05-28 16:30:44.030:E / AndroidRuntime(25198):在android.os.Looper.loop(Looper.java:123)
05-28 16:30:44.030:E / AndroidRuntime(25198):在android.app.ActivityThread.main(ActivityThread.java:3683)
05-28 16:30:44.030:E / AndroidRuntime(25198):在java.lang.reflect.Method.invokeNative(本机方法)
05-28 16:30:44.030:E / AndroidRuntime(25198):在java.lang.reflect.Method.invoke(Method.java:507)
05-28 16:30:44.030:E / AndroidRuntime(25198):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:839)
05-28 16:30:44.030:E / AndroidRuntime(25198):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
05-28 16:30:44.030:E / AndroidRuntime(25198):在dalvik.system.NativeStart.main(本机方法)
 

解决方案

您应使用以下code:

 类2 CLS2 =新的Class2();
cls2.UpdateEmployee();
 

如果你不希望创建一个新的实例调用该方法,可以decalre的方法,静态,然后你可以叫 Class2.UpdateEmployee();

I know that this Question is repeated but I can't find the answer in Internet.

I want to call a method from another class.

I've Class1 and Class2.

In Class 2 I've that method:

public void UpdateEmployee(){
    //some code
}

I want to call that method from Class1.

Thanks for any answer.

----EDIT----

final Button btnUpdate = (Button)findViewById(R.id.btnUpd);
   btnUpdate.setOnClickListener(new View.OnClickListener() {      
     public void onClick(View v) {
             Employee updEmple = new Employee();
             updEmple.UpdateEmployee();      

    }
    });

----LogCat---

05-28 16:30:44.030: E/AndroidRuntime(25198): FATAL EXCEPTION: main
05-28 16:30:44.030: E/AndroidRuntime(25198): java.lang.NullPointerException: println    needs a message
05-28 16:30:44.030: E/AndroidRuntime(25198):    at android.util.Log.println_native(Native Method)
05-28 16:30:44.030: E/AndroidRuntime(25198):    at android.util.Log.v(Log.java:116)
05-28 16:30:44.030: E/AndroidRuntime(25198):    at   and.net.Employee.UpdateEmployee(Employee.java:77)
05-28 16:30:44.030: E/AndroidRuntime(25198):    at and.net.AndActivity$2.onClick(AndActivity.java:51)
05-28 16:30:44.030: E/AndroidRuntime(25198):    at android.view.View.performClick(View.java:2485)
05-28 16:30:44.030: E/AndroidRuntime(25198):    at android.view.View$PerformClick.run(View.java:9080)
05-28 16:30:44.030: E/AndroidRuntime(25198):    at android.os.Handler.handleCallback(Handler.java:587)
05-28 16:30:44.030: E/AndroidRuntime(25198):    at android.os.Handler.dispatchMessage(Handler.java:92)
05-28 16:30:44.030: E/AndroidRuntime(25198):    at android.os.Looper.loop(Looper.java:123)
05-28 16:30:44.030: E/AndroidRuntime(25198):    at android.app.ActivityThread.main(ActivityThread.java:3683)
05-28 16:30:44.030: E/AndroidRuntime(25198):    at java.lang.reflect.Method.invokeNative(Native Method)
05-28 16:30:44.030: E/AndroidRuntime(25198):    at java.lang.reflect.Method.invoke(Method.java:507)
05-28 16:30:44.030: E/AndroidRuntime(25198):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
05-28 16:30:44.030: E/AndroidRuntime(25198):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
05-28 16:30:44.030: E/AndroidRuntime(25198):    at  dalvik.system.NativeStart.main(Native Method)

解决方案

You should use the following code :

Class2  cls2= new Class2();
cls2.UpdateEmployee();

In case you don't want to create a new instance to call the method, you can decalre the method as static and then you can just call Class2.UpdateEmployee();