Android 调用另一个类的方法
Posted
技术标签:
【中文标题】Android 调用另一个类的方法【英文标题】:Android Call a method from another class 【发布时间】:2012-06-02 23:15:19 【问题描述】:我知道这个问题是重复的,但我在互联网上找不到答案。
我想调用另一个类的方法。
我有 Class1 和 Class2。
在 Class 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 代码,问题是您尝试打印未设置的内容 【参考方案1】:在第一类:
Class2 inst = new Class2();
inst.UpdateEmployee();
【讨论】:
【参考方案2】:而且,如果您不想实例化 Class2,请将 UpdateEmployee 声明为静态并像这样调用它:
Class2.UpdateEmployee();
但是,您通常会按照@parag 所说的去做。
【讨论】:
通常...因为否则您将无法访问变量。【参考方案3】:您应该使用以下代码:
Class2 cls2 = new Class2();
cls2.UpdateEmployee();
如果您不想创建一个新实例来调用该方法,您可以将该方法标记为static
,然后您可以直接调用Class2.UpdateEmployee()
。
【讨论】:
在哪一行以及何时尝试使用静态或常规? 我正在使用它 OnClickButton。员工 updEmple = new Employee(); updEmple.UpdateEmployee(); 编辑您的问题并发布 logcat 就是这么简单,但不要忘记在类 2 中添加引用,否则类 1 甚至无法编译。公共类 Class2 扩展 AppCompatActivity 公共类 2() 如何获得响应。【参考方案4】:在 MainActivity 中添加这个。
Intent intent = new Intent(getApplicationContext(), Heightimage.class);
startActivity(intent);
【讨论】:
这不是上课。这是“开始”上课。以上是关于Android 调用另一个类的方法的主要内容,如果未能解决你的问题,请参考以下文章
Android 中如何在java类中调用activity 中的一个方法?
除了android中的活动之外,还有啥是调用网络类的好方法?