2012-05-28 192 views
16

我知道這個問題重複了,但我無法在Internet中找到答案。Android從另一個類調用方法

我想調用另一個類的方法。

我有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) 
+1

顯示您UpdateEmployee代碼,問題是有你想打印的東西,沒有設置 –

回答

51

你應該使用下面的代碼:

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

如果你不希望創建一個新的實例調用該方法,可以decalre方法爲static,然後你可以叫Class2.UpdateEmployee()

+0

我得到NullPointerExeption。 – HaOx

+0

在什麼情況下以及何時嘗試使用靜態或常規? –

+0

我正在使用它OnClickButton。 Employee updEmple = new Employee(); updEmple.UpdateEmployee(); – HaOx

5

在Class:

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

而且,如果你不不想實例化Class2,將UpdateEmployee聲明爲靜態,並且像這樣調用它:

Class2.UpdateEmployee(); 

但是,你通常會想要做@parag說的。

+0

正常......因爲你將無法以其他方式訪問的變量。 – FlorianB

-4

將此項添加到MainActivity中。

Intent intent = new Intent(getApplicationContext(), Heightimage.class); 
startActivity(intent); 
+3

他想調用另一個類的方法,而不是啓動活動...... – JCoder

相關問題