Toast消息未显示

时间:2014-12-22 11:16:28

标签: android android-ui toast android-toast

我正在尝试使用以下代码在我的应用程序中显示Toast消息。

AlertDialog.Builder alert = new AlertDialog.Builder(this);
            alert.setTitle("Do you want to continue?");
            alert.setPositiveButton("Continue", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {

                    try{
                        //This code generates an Activity Not Found exception   
                        }
                        catch(ActivityNotFoundException e) {
                            System.out.println("Activity Not Found Exception Raised");
                            Toast.makeText(getBaseContext(), "Activity Not Found", Toast.LENGTH_LONG).show(); // For the context I tried using getBaseContext, ActivityName.this also
                        }
                    }

            });

            alert.setNegativeButton("Cancel",
                    new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                }
            });
            alert.show();

但此消息仅在少数设备上显示。我已经在安装了Android 4.2.2版的HTC One X上测试了这段代码。

如果我在使用Android 4.2.2的Micromax A63上测试相同的代码,但它没有在它上面工作。

我已经通过互联网搜索了这类错误,并且他们主要是在设置菜单中告知应用通知禁用选项。但我的应用程序通知未被禁用。

修改

我在AlertDialog

中进行此操作

有人可以帮我解决这个问题。

5 个答案:

答案 0 :(得分:14)

如果您还没有想到这一点,请确保您没有针对相关应用程序停用通知;这也禁用了祝酒词。

https://code.google.com/p/android/issues/detail?id=35013

答案 1 :(得分:4)

如果您在活动中使用它,请使用:

Toast.makeText(ActivityName.this, "My Toast Message", Toast.LENGTH_SHORT).show();

如果 您正在将它用于片段:

Toast.makeText(getActivity, "My Toast Message", Toast.LENGTH_SHORT).show();

适配器中的O​​R

Toast.makeText(context, "My Toast Message", Toast.LENGTH_SHORT).show();

注意:在适配器中,上下文表示您在适配器中声明的上下文。

答案 2 :(得分:2)

试试这个

Toast.makeText(getBaseContext(), "My Toast Message", Toast.LENGTH_SHORT).show();

OR

Toast.makeText(PreferenceActivity.this, "My Toast Message", Toast.LENGTH_SHORT).show(); `

了解更多详情。查看THIS

    AlertDialog.Builder alert = new AlertDialog.Builder(this);
            alert.setTitle("Do you want to continue?");
            alert.setPositiveButton("Continue", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {

                    try{
                        //This code generates an Activity Not Found exception   
                        }
                        catch(ActivityNotFoundException e) {
                            System.out.println("Activity Not Found Exception Raised");
                           ShowToast();
                        }
                    }

            });

            alert.setNegativeButton("Cancel",
                    new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                }
            });
            alert.show();

}

public void ShowToast()
{
 Toast.makeText(getBaseContext(), "Activity Not Found", Toast.LENGTH_LONG).show(); // For the context I tried using getBaseContext, ActivityName.this also
}

答案 3 :(得分:0)

上下文上下文;

1.然后在OnCreate()

上致电并初始化
context=this; (Use in Activity)

context=this.getActivity(); (Use in Fragment)

然后使用

Toast.makeText(context, "My Toast Message", Toast.LENGTH_LONG).show();

答案 4 :(得分:0)

尝试使用getApplicationContext()代替getBaseContext