web-dev-qa-db-fra.com

Android Appeler une méthode d'une autre classe

Je sais que cette question est répétée mais je ne trouve pas la réponse sur Internet.

Je veux appeler une méthode d'une autre classe.

J'ai Class1 et Class2.

En classe 2, j'ai cette méthode:

public void UpdateEmployee(){
    //some code
}

Je veux appeler cette méthode à partir de Class1.

Merci pour toute réponse.

----MODIFIER----

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)
20
HaOx

Vous devez utiliser le code suivant:

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

Dans le cas où vous ne souhaitez pas créer une nouvelle instance pour appeler la méthode, vous pouvez décaler la méthode en tant que static, puis vous pouvez simplement appeler Class2.UpdateEmployee().

58
eric.itzhak

En classe 1:

Class2 inst = new Class2();
inst.UpdateEmployee();
5
Parag Chauhan

Et, si vous ne voulez pas instancier Class2, déclarez UpdateEmployee comme statique et appelez-le comme ceci:

Class2.UpdateEmployee();

Cependant, vous voudrez normalement faire ce que @parag a dit.

5
Charlie-Blake