我在Android上使用吐司,但是我不希望吐司消失。而是留下...... 而且我不希望吐司出现在不同的活动或片段上。 如果我在某个片段中调用吐司,我不希望在不同的片段或活动中看到它。 让我们说活动1,我打电话toast..i去活动2 ...我不想要吐司显示。当我回到活动1时,我看到吐司仍在原地。 我也希望这是碎片。
Toast toast = Toast.makeText(dialog.getContext(),R.string.serverError,Toast.LENGTH_LONG); toast.show();
答案 0 :(得分:1)
如果您希望移出活动时Toast不会留在屏幕上,那么我建议您使用第三方库Crouton
答案 1 :(得分:1)
试试这种方式
Fragment:
中的
final Toast toast = Toast.makeText(getActivity(), "Test", Toast.LENGTH_SHORT);
toast.show();
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
toast.cancel();
}
}, 500);
Activity:
中的
final Toast toast = Toast.makeText(activity.this, "Test", Toast.LENGTH_SHORT);
toast.show();
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
toast.cancel();
}
}, 500);
答案 2 :(得分:0)
一种可能性是在片段/活动中制作Toast global
。现在,您可以在onPause()
之类的回调中调用Toast.cancel(),如果您切换活动或片段,则会调用此回调。
文档说取消:
关闭视图,如果它显示,或者如果没有显示则不显示 然而。 ...
更好的方法是为评论中建议的jitain sharma制作Toast的自定义类。
答案 3 :(得分:0)
在您的活动onDestory
方法中使用以下代码:
toast.cancel();