安卓对话框中显示Toast问题
        Builder builder=new Builder(this);
        builder.setTitle("单选框");
        builder.setMessage("有本事你选");
        builder.setPositiveButton("确定", new OnClickListener(){
            public void onClick(DialogInterface arg0, int arg1) {
                Toast.makeText(this, "你选了确定", 0).show();
            }
        });

Toast.makeText(this, "你选了确定", 0).show();
这句话把getApplicationContext()替换成this 会报错:
The method makeText(Context, CharSequence, int) in the type Toast is not applicable for the arguments (new DialogInterface.OnClickListener(){}, String, int)

为什么不能用this?

2个回答

老问题了:
this代表这个类对象自己,那这个类对象是谁呢?
当然是这段代码所在的类了。
你的Toast.makeText明显是在OnClickListener里面,this当然是OnClickListener了。
所以有内部类的话必须指定外部类名:xxxActivity.this

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问