2015-06-09 108 views
-1

我正在开发一个Android应用程序,我有点困惑为什么我的吐司没有显示在我的应用程序。吐司不出现

面包不在活动中。因此,这是我的解决方案。在MainActivity:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_startup); 

    // Init context 
    InstanceHandler.setContextOfMainActivity(this); 
} 

在类InstanceHandler:

private Activity mActivity; 
public Context mContext; 

public void setContextOfMainActivity(Activity activity) { 
    mActivity = activity; 
    mContext = activity.getApplicationContext(); 
} 

,并在受影响的类Connection.java(延伸活动)我打电话举杯:

public class Connection{ 

    public void test(){ 
     Toast.makeText(InstanceHandler.mContext, "This is a test", Toast.LENGTH_SHORT).show(); 
    } 
} 

但没有任何反应。应用程序在Toast后中止以下代码。

+2

删除InstanceHandler并尝试使用Toast:Toast.makeText(mContext,“This is a test”,Toast.LENGTH_SHORT).show();'或者也可以使用'getApplicationContext()'而不是 –

+0

Where你叫Toast.makeText(InstanceHandler.mContext,“这是一个测试”,Toast.LENGTH_SHORT).show(); ? –

+0

在BleConnector中保存对MainActivity中上下文的引用,以便您可以将其用于烘烤 – Gosu

回答

1

只需使用这个在那边

Toast.makeText(mContext, "This is a test", Toast.LENGTH_SHORT).show(); 

。如果使用该类像这样

public class Connection{ 
    Context mContext; 
    public Connection(Context context) { 
     // TODO Auto-generated constructor stub 

     mContext = context; 
    } 

    public void test(){ 
     Toast.makeText(mContext, "This is a test", Toast.LENGTH_SHORT).show(); 
    } 
} 
+0

你可以显示你在哪里使用吐司? –

+0

我编辑了我的答案。现在检查 –

+0

也告诉我你从哪里叫这个班。通过上下文 –

1

看来你正在使用Toast.makeText(..)..在InstanceHandler类之外的在其他Activity中使用,然后直接使用该活动,如果您在InstanceHandler类中使用,则使用

mContext代替InstanceHandler.mContext

希望这对你有帮助。