android – 从Dialog获取价值

android – 从Dialog获取价值,第1张

概述我想用EditText显示一个Dialog.我设想它有两个按钮:一个正按钮,它将持久保存EditText中包含的文本;一个负按钮,它将取消并返回启动它的Activity,好像什么也没发生过一样.我尝试过使用AlertDialog但没有成功: AlertDialog.Builder builder = new Builder(context);final EditText text = new E 我想用EditText显示一个Dialog.我设想它有两个按钮:一个正按钮,它将持久保存EditText中包含的文本;一个负按钮,它将取消并返回启动它的Activity,好像什么也没发生过一样.我尝试过使用AlertDialog但没有成功:

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获取价值所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1128570.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存