この質問が繰り返されることは知っていますが、インターネットで答えが見つかりません。
別のクラスからメソッドを呼び出したい。
Class1とClass2があります。
クラス2では、そのメソッドを使用しました。
public void UpdateEmployee(){
//some code
}
Class1からそのメソッドを呼び出したいです。
答えてくれてありがとう。
----編集----
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)
次のコードを使用する必要があります。
_Class2 cls2 = new Class2();
cls2.UpdateEmployee();
_
メソッドを呼び出すために新しいインスタンスを作成したくない場合は、メソッドをstatic
としてデカールできます。その後、Class2.UpdateEmployee()
を呼び出すだけです。
Class1で:
Class2 inst = new Class2();
inst.UpdateEmployee();
また、Class2をインスタンス化したくない場合は、UpdateEmployeeを静的として宣言し、次のように呼び出します。
Class2.UpdateEmployee();
ただし、通常は@paragが言ったことを実行する必要があります。