2015-06-09 101 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

希望這對你有幫助。