AlertDialog.Builder builder = new Builder(context);final EditText text = new EditText(context);builder.setTitle("New Profile").setMessage("name this new profile").setVIEw(text);builder.setPositivebutton("Create",new OnClickListener() { public voID onClick(DialogInterface di,int i) { final String name = text.getText().toString(); //do something with it }});builder.setNegativebutton("Cancel",int i) { }});builder.create().show();
我是否在使用setVIEw()方法做错了什么?使用自定义Dialog会更实用吗?
编辑:
我得到了几个答案,说代码适用于他们……不知道为什么它不适合我.这是logcat:
E/AndroIDRuntime( 326): FATAL EXCEPTION: mainE/AndroIDRuntime( 326): androID.vIEw.WindowManager$BadTokenException: Unable to add window -- token null is not for an applicationE/AndroIDRuntime( 326): at androID.vIEw.VIEwRoot.setVIEw(VIEwRoot.java:531)E/AndroIDRuntime( 326): at androID.vIEw.WindowManagerImpl.addVIEw(WindowManagerImpl.java:177)E/AndroIDRuntime( 326): at androID.vIEw.WindowManagerImpl.addVIEw(WindowManagerImpl.java:91)E/AndroIDRuntime( 326): at androID.app.Dialog.show(Dialog.java:241)E/AndroIDRuntime( 326): at com.gobernador.topPage.onListItemClick(topPage.java:77)E/AndroIDRuntime( 326): at androID.app.ListActivity.onItemClick(ListActivity.java:319)E/AndroIDRuntime( 326): at androID.Widget.AdapterVIEw.performItemClick(AdapterVIEw.java:284)E/AndroIDRuntime( 326): at androID.Widget.ListVIEw.performItemClick(ListVIEw.java:3513)E/AndroIDRuntime( 326): at androID.Widget.AbsListVIEw$PerformClick.run(AbsListVIEw.java:1812)E/AndroIDRuntime( 326): at androID.os.Handler.handleCallback(Handler.java:587)E/AndroIDRuntime( 326): at androID.os.Handler.dispatchMessage(Handler.java:92)E/AndroIDRuntime( 326): at androID.os.Looper.loop(Looper.java:123)E/AndroIDRuntime( 326): at androID.app.ActivityThread.main(ActivityThread.java:3683)E/AndroIDRuntime( 326): at java.lang.reflect.Method.invokeNative(Native Method)E/AndroIDRuntime( 326): at java.lang.reflect.Method.invoke(Method.java:507)E/AndroIDRuntime( 326): at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)E/AndroIDRuntime( 326): at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:597)E/AndroIDRuntime( 326): at dalvik.system.NativeStart.main(Native Method)解决方法 Gobernador Agarwal是对的,我也试过你的代码并且它正在工作,通过用这个替换上下文来尝试它
AlertDialog.Builder builder = new Builder(this); final EditText text = new EditText(this); builder.setTitle("New Profile").setMessage("name this new profile").setVIEw(text); builder.setPositivebutton("Create",new OnClickListener() { public voID onClick(DialogInterface di,int i) { final String name = text.getText().toString(); //do something with it } }); builder.setNegativebutton("Cancel",int i) { } }); builder.create().show();总结
以上是内存溢出为你收集整理的android – 从Dialog获取价值全部内容,希望文章能够帮你解决android – 从Dialog获取价值所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)