创建一个全局 Toast 方法以在所有活动中使用它?
Create a global Toast method to use it across all activities?
我想创建一个全局的 shortToast 和 longToast 方法,以便在我拥有的所有其他活动中动态使用它,因此我不必在每个 activity.
中定义 Toast 方法
我试过了,但是 Android Studio 告诉我这是内存泄漏:
public static Activity thisActivity = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
thisActivity = this;
}
public static void shortToast()
{
Toast.makeText(thisActivity, "message" , Toast.LENGTH_SHORT).show();
}
public static void longToast()
{
Toast.makeText(thisActivity, "message" , Toast.LENGTH_LONG).show();
}
我可以做些什么来实现这个具有全局 toast 方法(没有内存泄漏)的目标?
将 Activity
作为参数传递给 shortToast()
和 longToast()
。
或者,将这些方法放在 Activity
的子类中,让您的所有活动都继承自它。然后,您可以从方法和 thisActivity
字段中删除 static
关键字,而只需使用 this
.
创建实用程序class:
public class Utils {
public static void showToast(String msg, Context ctx) {
Toast.makeText(ctx, msg, Toast.LENGTH_SHORT).show();
}
}
从 Activity 使用它:
Utils.showToast("Message", this);
来自片段:
Utils.showToast("Message", getActivity());
我想创建一个全局的 shortToast 和 longToast 方法,以便在我拥有的所有其他活动中动态使用它,因此我不必在每个 activity.
中定义 Toast 方法我试过了,但是 Android Studio 告诉我这是内存泄漏:
public static Activity thisActivity = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
thisActivity = this;
}
public static void shortToast()
{
Toast.makeText(thisActivity, "message" , Toast.LENGTH_SHORT).show();
}
public static void longToast()
{
Toast.makeText(thisActivity, "message" , Toast.LENGTH_LONG).show();
}
我可以做些什么来实现这个具有全局 toast 方法(没有内存泄漏)的目标?
将 Activity
作为参数传递给 shortToast()
和 longToast()
。
或者,将这些方法放在 Activity
的子类中,让您的所有活动都继承自它。然后,您可以从方法和 thisActivity
字段中删除 static
关键字,而只需使用 this
.
创建实用程序class:
public class Utils {
public static void showToast(String msg, Context ctx) {
Toast.makeText(ctx, msg, Toast.LENGTH_SHORT).show();
}
}
从 Activity 使用它:
Utils.showToast("Message", this);
来自片段:
Utils.showToast("Message", getActivity());