比如你的源码文件名是 activity.java,就改成
dialog dialog=new alertdialog.builder(activity.this);
因名称而异。在listener中的this指代的并不是activity里的this,而两个this成员和方法是完全不一样的,所以会出错,需要告诉ide即将访问的是activity的this,这样就不会出问题了。
这个要仔细去看SDK里面alertDialog类的方法,以下是一个思路,主要代码如下:
dlg = new AlertDialog.Builder(context).create();
dlg.show();
dlg.getWindow().setContentView(R.layout.alert_style);
LayoutInflater factory = LayoutInflater.from(context);
View view = factory.inflate(R.layout.alert_style, null);
gv = (GridView) view.findViewById(R.id.myGrid);
gv.setAdapter(new ImageAdapter(context, new Integer[] {R.drawable.menu_mark_editor,R.drawable.menu_delete}));
dlg.getWindow().setContentView(gv);
其实原理很简单,就是在弹出框AlertDialog上给一个自己的View。
这个白色应该是你按钮的透明色吧。
说明最外层还有一个背景色。
你可以自己 写一个dialog