【发布时间】:2015-08-28 06:21:43
【问题描述】:
剧透:由于习惯于 C 和 Java 编程新手,这篇文章可能包含一些愚蠢的内容
有一个活动 MainActivity 和一个包含许多方法的公共非活动类。我需要为其中一些显示吐司警报
当前的尝试是这样的,但对于 getApplicationContext() 失败并显示“无法从静态上下文引用非静态方法”:
void errorWarn (String warning) {
Context context = android.content.ContextWrapper.getApplicationContext();
Toast.makeText(context, "Something's wrong in " + warning, Toast.LENGTH_SHORT).show();
}
那么,如何从非活动类中调用 toast?
UPD:errorWarn 将从类中的方法调用。所以,如果类的某个方法发生错误,应该会有一个警告
我们在 MainActivity 中有一个 editText 字段。该类应该从中获取并解析字符串。如果在某些步骤处理失败,它会在 MainActivity 中显示一个 toast
UPD2:完整的结构。
主活动:
public class MainActivity extends ActionBarActivity {
<...>
public void ButtonClick (View view) {
Class.testfunc("");
}
}
类:
public class Class {
void errorWarn (Context context, String warning) {
Toast.makeText(context, "Something must be wrong. " + warning, Toast.LENGTH_SHORT).show();
}
void testfunc (String string) {
errorWarn(string);
}
}
【问题讨论】:
-
如果你必须:
static void errorWarn (Context context, String warning) { ... }当你需要展示吐司时,你总是可以有一个适当的上下文
标签: java android android-toast