Android Вызов метода из другого класса
Я знаю, что этот Вопрос повторяется, но я не могу найти ответ в Интернете.
Я хочу вызвать метод из другого класса.
У меня есть Class1 и Class2.
В классе 2 у меня есть этот метод:
public void UpdateEmployee(){
//some code
}
Я хочу вызвать этот метод из Class1.
Спасибо за любой ответ.
---- 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)
Ответы
Ответ 1
Вы должны использовать следующий код:
Class2 cls2 = new Class2();
cls2.UpdateEmployee();
Если вы не хотите создавать новый экземпляр для вызова метода, вы можете декалировать метод как static
, а затем вы можете просто вызвать Class2.UpdateEmployee()
.
Ответ 2
В Class1:
Class2 inst = new Class2();
inst.UpdateEmployee();
Ответ 3
И, если вы не хотите создавать экземпляр класса 2, объявите UpdateEmployee статичным и вызовите его следующим образом:
Class2.UpdateEmployee();
Однако вы, как правило, хотите сделать то, что сказал @parag.
Ответ 4
Добавьте это в MainActivity.
Intent intent = new Intent(getApplicationContext(), Heightimage.class);
startActivity(intent);