Вопрос по android, java – Android Вызов метода из другого класса

19

Я знаю, что этот Вопрос повторяется, но я не могу найти ответ в Интернете.

Я хочу вызвать метод из другого класса.

Я "Класс 1 и Класс 2".

В классе 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)
покажите свой код UpdateEmployee, проблема в том, что вы пытаетесь напечатать что-то, что не установлено eric.itzhak

Ваш Ответ

4   ответа
57

Вы должны использовать следующий код:

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

В случае, если вы не хотите создавать новый экземпляр для вызова метода, вы можете объявить метод какstatic и тогда ты можешь просто позвонитьClass2.UpdateEmployee().

Я получаю NullPointerExeption. HaOx
На какой строчке и когда ты пытаешься использовать статическую или обычную? eric.itzhak
Я использую его OnClickButton. Employee updEmple = new Employee (); updEmple.UpdateEmployee (); HaOx
Отредактируйте свой вопрос и опубликуйте журнал eric.itzhak
Все очень просто, но не забудьте в классе 2 добавить ссылку, или класс 1 даже не скомпилируется. открытый класс Class2 расширяет AppCompatActivity {открытый класс 2 () {} Wraithious
5

если вы не хотите создавать экземпляр Class2, объявите UpdateEmployee как статический и вызовите его так:

Class2.UpdateEmployee();

Однако вы обычно захотите сделать то, что сказал @parag.

нормально ... потому что иначе у тебя не будет доступа к переменным. FlorianB
5

В классе 1:

Class2 inst = new Class2();
inst.UpdateEmployee();
-6

Добавьте это в MainActivity.

Intent intent = new Intent(getApplicationContext(), Heightimage.class);
startActivity(intent);
Он хочет вызвать метод из другого класса, а не начинать действие ... JCoder

Похожие вопросы