Android Toast将显示之前的活动

时间:2011-11-29 14:35:56

标签: android android-activity toast

在我的Android应用程序中,我有一个按钮导致某个活动,在某些情况下,由于if语句而无法启动。

如果我在onCreate上使用.finish();终止活动,那么当用户点击按钮时没有任何反应。

但我想在当前活动中向用户显示警报,Toast。不确定这是否真的很清楚,但这应该是基本上应该发生的事情:

  • 用户在主页
  • 用户点击按钮转到下一个活动
  • 没有任何事情发生,因为onCreate上的.finish();活动被杀死了。
  • 此处,用户点击按钮后,主页上会显示Toast通知

到目前为止,这是我的代码:

try {
        this.storeMarkerList = new StoreMarkerList(this.mapView);
        StoreList list = (StoreList)getBaseApplication().getSessionParameter("selected.storelist", null);
        if (list == null || list.size() == 0){
            Toast.makeText(???, "No stores", 5000);
            this.finish();  
        }
        else {

(...)

4 个答案:

答案 0 :(得分:13)

试试这个:

Toast.makeText(getApplicationContext(), "No stores", 5000).show();

答案 1 :(得分:3)

您在Toast.makeText()之后错过了难以捉摸的#show()来电。

if (list == null || list.size() == 0){
    Toast.makeText(this, "No stores", 5000).show();
    this.finish();  
}

答案 2 :(得分:2)

如果您在片段中,则可以通过applicationContext方法保留对getActivity()的引用。

Context context = getActivity().getApplicationContext(); // Inside a fragment

Toast.makeText(context, context.getResources().getString(R.string.no_content), Toast.LENGTH_SHORT).show();

getActivity().finish();

答案 3 :(得分:1)

Toast留言在Activity之间仍然存在,所以您需要做的就是:

@Override
onPause()
{
    Toast.makeToast("My text", Toast.length_long).show();
    super.onPause();
}

类似的东西,虽然我的变量名称可能有些偏差,因为我正在做这件事:“