Android 如何成功地在全局声明变量,与上下文有关
下面是关于如何将活动中经常使用的函数放在一个位置的教程 例如,在整个项目中出现的Android 如何成功地在全局声明变量,与上下文有关,android,android-context,Android,Android Context,下面是关于如何将活动中经常使用的函数放在一个位置的教程 例如,在整个项目中出现的toast消息,而不是在每个活动中都有函数,只是在一个地方调用它,GlobalFunctions.java 因此,我用简单的函数得到它,例如,在GlobalFunctions.java: public class GlobalFunctions { public void simpleMessage() { System.out.println("simpleMessage text goe
toast
消息,而不是在每个活动中都有函数,只是在一个地方调用它,GlobalFunctions.java
因此,我用简单的函数得到它,例如,在GlobalFunctions.java
:
public class GlobalFunctions {
public void simpleMessage() {
System.out.println("simpleMessage text goes here");
}
}
我从活动1
中这样称呼它:
GlobalFunctions simplemessage = new GlobalFunctions();
simplemessage.simpleMessage();
那怎么办呢
public class GlobalFunctions {
public void simpleMessage() {
Toast.makeText(getApplicationContext(), "simpleMessage text goes here", Toast.LENGTH_LONG).show();
}
}
我看了好几篇帖子,包括,无论我在
上下文中放置了什么Toast
部分,我都会收到一条无法解析方法的消息。此外,如果有任何关于这个主题的好的傻瓜教程,我将不胜感激 一种解决方案是将上下文作为参数从活动
或片段
传递
与实例化全局函数相比,编写和使用静态方法可能是更好的方法。创建Java Utils类:
public class Utils {
public static void showToast(Context context, String text) {
Toast.makeText(context, text, Toast.LENGTH_LONG).show();
}
}
// for example on the Activity code
Utils.showToast(this, "This is the toast text");
关键是
静态值允许您在整个项目中使用静态方法
变量
等
您可以使用以下概念:
public static class GlobalFunctions {
public static void simpleMessage(Context context, String message) {
Toast.makeText(context, message, Toast.LENGTH_LONG).show();
}
}
你必须像这样调用它:
GlobalFunctions.simpleMessage(/*YourActivity.this*/ /*or*/ /*getActivity()*/, "toast");
尝试这样创建类,将Context
和Toast
消息作为如下参数传递
public class GlobalFunctions {
public static void simpleMessage(Context context,String message) {
Toast.makeText(Context, message, Toast.LENGTH_LONG).show();
}
}
GlobalFunctions.simpleMessage(YourActivity.this,"your Mesaage");
像这样调用这个函数
public class GlobalFunctions {
public static void simpleMessage(Context context,String message) {
Toast.makeText(Context, message, Toast.LENGTH_LONG).show();
}
}
GlobalFunctions.simpleMessage(YourActivity.this,"your Mesaage");
在活动之外保留字段中的上下文可能是内存泄漏的原因,但有一些解决方法
您可以使用应用程序或应用程序上下文创建Singleton,并在自定义应用程序类的onCreate
中初始化它。但是您必须记住,您不能使用此上下文来构建视图-它不是样式化的
另一种方法是将上下文作为参数传递
很抱歉,缺少代码,电话回复:)GlobalFunctions.simpleMessage(YourActivity.this,“your mesage”)代码>不起作用,因为这不是静态类也是方法,您必须从变量中提取它。@Ibrahim我刚刚更新了我的ansI,希望保留您的旧答案,因为它承载了不同的概念,对整个问题更有用,现在你编辑了它,就像问题中的所有答案一样,它包含了相同的概念和方式,所以它以前变得毫无用处。@Ibrahim没有得到你,我的朋友