我有一节课,用于在我的活动中获取GPS数据.在构造函数中,我将活动的上下文传递给它:
gpsFetcher = new GPSFetcher(this);
Run Code Online (Sandbox Code Playgroud)
在gpsFetcher课程中,我有:
this.context = c.getApplicationContext();
Run Code Online (Sandbox Code Playgroud)
要不就
this.context = c;
Run Code Online (Sandbox Code Playgroud)
然后我叫吐司:
Toast.makeText(context, "sometext", Toast.LENGTH_LONG);
Run Code Online (Sandbox Code Playgroud)
但它永远不会出现......有什么我想念的吗?可能吗?
谢谢!
剧透:这篇文章可能由于使用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();
}
Run Code Online (Sandbox Code Playgroud)
那么,如何从非活动类中调用吐司呢?
UPD:将从类中的方法中调用errorWarn 。因此,如果在类的方法中发生错误,则应该发出警报
我们在MainActivity中有一个editText字段。该类应从中获取并解析字符串。如果在某些步骤上处理失败,则在MainActivity中显示吐司
UPD2:完整结构。
主要活动:
public class MainActivity extends ActionBarActivity {
<...>
public void ButtonClick (View view) {
Class.testfunc("");
}
}
Run Code Online (Sandbox Code Playgroud)
类:
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);
}
}
Run Code Online (Sandbox Code Playgroud)