24

この質問が繰り返されることは知っていますが、インターネットで答えを見つけることができません。

別のクラスからメソッドを呼び出したい。

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)
4

4 に答える 4

74

次のコードを使用する必要があります。

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

メソッドを呼び出すための新しいインスタンスを作成したくない場合は、メソッドをとしてデカールしてから、をstatic呼び出すことができますClass2.UpdateEmployee()

于 2012-05-28T15:42:21.510 に答える
8

クラス1:

Class2 inst = new Class2();
inst.UpdateEmployee();
于 2012-05-28T15:40:31.637 に答える
6

また、Class2をインスタンス化したくない場合は、UpdateEmployeeを静的として宣言し、次のように呼び出します。

Class2.UpdateEmployee();

ただし、通常は@paragが言ったことを実行する必要があります。

于 2012-05-28T15:42:19.917 に答える
-8

これをMainActivityに追加します。

Intent intent = new Intent(getApplicationContext(), Heightimage.class);
startActivity(intent);
于 2015-05-18T05:45:33.310 に答える