[英]how to call method in another activity
我应该从一个活动到另一个活动调用一个方法。 我的头等舱是:
public class firstclass extends Activity {
public String Kind(){
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
boolean Key = preferences.getBoolean("Key", true);
if(Key){
name="you";
}
else{
name="me";
}
return name;
}
}
第二类是:
public class secondclass extends Activity {
public void take(String token, int transactionId) {
firstclass first = new firstclass(); //error in this class
first.Kind();
}
}
我的错误是:
03-25 19:05:39.082 5421-5487/com.example.com E/AndroidRuntime﹕ FATAL EXCEPTION: pool-5-thread-1
java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
at android.os.Handler.<init>(Handler.java:197)
at android.os.Handler.<init>(Handler.java:111)
at android.app.Activity.<init>(Activity.java:759)
at com.example.com.firstclass<init>(firstclass.java:17)
at com.example.com.secondclass(secondclass.java:157)
简而言之:您不应该。 制作一个单独的(单例)类,该类处理两种活动都可以访问的kind()
逻辑。
如果您有需要在活动之间共享的代码,则应将其导出到Helper类。
例:
public class KindUtils {
public static String Kind(Context context){
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
boolean Key = preferences.getBoolean("Key", true);
if(Key){
name="you";
}
else{
name="me";
}
return name;
}
}
现在,您可以在两个活动中调用KindUtils.Kind(this)
。
那不是你做的方式。 让我根据我的知识更正您的代码。
new
用于扩展Activity的类。 现在如何从某个活动中访问其他活动的方法
((Firstclass)getActivity()).kind;
这就是您从android中其他类访问方法的方式。
public class Firstclass extends Activity {
public String kind(){
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
boolean Key = preferences.getBoolean("Key", true);
if(Key){
name="you";
}
else{
name="me";
}
return name;
}
}
在二等班,你会做
public class Secondclass extends Activity {
public void take(String token, int transactionId) {
String str= ((Firstclass)getActivity()).kind;
}
}
希望对你有帮助
首先,当您从非UI线程调用UI(用户界面)方法时,会发生弯针错误。 在这种情况下,因为第二个活动不是出于意图而启动的,所以您将其启动是因为新的firstClass()会发生不好的事情。 活动具有生命周期回调。 onCreate可以将引用传递给应该绘制的项目,通常至少是对布局setContentView(R.layout.activity_main);的引用,onStart是开始绘制。 请记住,Android支持多种屏幕尺寸,并且必须询问您要添加到活动中的内容,多少,Android度量和数字如何显示,然后调用onstart来显示它,等等。 最主要的是将Activity作为Intent启动并阅读链接。 在清单活动块中,您具有启动器,这意味着在图标上放置一个图标以在单击该图标时启动一个活动。 一种启动活动的特殊方式。
您只需不像在Java中那样实例化Android中的Activities
实例。 您应该创建Intents
并调用startActivity()
。 为了使您的逻辑起作用,我建议您使用BroadcastReceivers
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.