Android:使用自定义视图从对话框中检索 EditText 值

2023-12-22

我使用 AlertDialog.Builder 类创建了一个对话框,并调用 builder.setView(int resource) 为其提供文本输入的自定义布局。

当用户点击“确定”时,我试图从布局上的 EditText 检索值,但是当调用 findViewByID() 时,我得到空引用。阅读周围的内容后发现,如果在调用 setContentView() 之前尝试加载视图,这种情况就会发生在其他地方。对于生成器,我显然还没有这样做,有没有办法检索视图,或者我应该以不同的方式构建我的对话框?

Java 和堆栈跟踪如下:

// Set up the on click of the Button
    Button add = (Button) findViewById(R.id.manage_connections_add_button);
    add.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View view) {
            AlertDialog.Builder builder = new AlertDialog.Builder(ManageConnectedServicesActivity.this);
            builder.setTitle("Add Service");

            builder.setView(R.layout.component_sharing_service_dialogue);

           // Set up the buttons on the dialog
            builder.setPositiveButton("Add", new DialogInterface.OnClickListener()
            {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    // Get the connected service url
                    EditText url = (EditText) findViewById(R.id.add_sharing_service_url); // This is the offending line

                    addConnectedService(url.getText().toString()); // Crashes here
                }
            });

            builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener()
            {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    dialogInterface.cancel();
                }
            });

            builder.show();
        }
    });

堆栈跟踪:

12-05 09:54:40.825 1889-1889/uk.mrshll.matt.accountabilityscrapbook  E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                  Process: uk.mrshll.matt.accountabilityscrapbook, PID: 1889
                                                                                  java.lang.NullPointerException: Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference
                                                                                      at uk.mrshll.matt.accountabilityscrapbook.ManageConnectedServicesActivity$1$1.onClick(ManageConnectedServicesActivity.java:63)
                                                                                      at android.support.v7.app.AlertController$ButtonHandler.handleMessage(AlertController.java:157)
                                                                                      at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                      at android.os.Looper.loop(Looper.java:135)
                                                                                      at android.app.ActivityThread.main(ActivityThread.java:5343)
                                                                                      at java.lang.reflect.Method.invoke(Native Method)
                                                                                      at java.lang.reflect.Method.invoke(Method.java:372)
                                                                                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905)
                                                                                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700)

创建一个视图来扩充 xml 文件,并在之前使用该视图findViewById()

final View view = inflater.inflate(R.layout.schedule,null);
builder.setView(view);

final EditText edtSelectDate = (EditText) view.findViewById(R.id.edtSelectDate);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android:使用自定义视图从对话框中检索 EditText 值 的相关文章

  • 如何对这个字符串进行子串化

    我想得到这个字符串的 4 个部分 String string 10 trillion 896 billion 45 million 56873 我需要的4个部分是 10万亿 8960亿 4500万 和 56873 我所做的是删除所有空格 然
  • Android Studio 3.0 Canary 9 - 无法解析包

    我在 Android Studio 3 0 Canary 9 中遇到几个错误 这些错误是 无法解析 android 软件包 下面列出了一些错误 我刚刚安装了 SDK 的所有额外软件包 但仍然收到 gradle 构建错误 Error 82 1
  • 在包“android”中找不到属性“backgroundTint”的资源标识符

    我发现了一些视图 xml 属性 例如backgroundTint backgroundTintMode 但是当我使用它作为视图属性定义时 Eclipse 显示错误 No resource identifier found for attri
  • 在 Android Studio 中,为什么我必须在模拟器中单击“运行应用程序”两次才能启动应用程序?

    在 Android Studio 中 当我按播放按钮在 Android 模拟器上安装并运行应用程序时 大约 5 10 秒后 我在屏幕底部收到一条消息 显示 安装成功 但应用程序实际上并未运行在模拟器上 我必须再次按下播放按钮 这是非常令人沮
  • 计数物体和更好的填充孔的方法

    我是 OpenCV 新手 正在尝试计算物体的数量在图像中 我在使用 MATLAB 图像处理工具箱之前已经完成了此操作 并在 OpenCV Android 中也采用了相同的方法 第一步是将图像转换为灰度 然后对其进行阈值计算 然后计算斑点的数
  • Android Activity 生命周期函数基础知识

    我正在测试这段代码 它显示活动所处的状态 public class Activity101Activity extends Activity String tag Lifecycle Called when the activity is
  • 在画布上绘图

    我正在编写一个 Android 应用程序 它可以在视图的 onDraw 事件上直接绘制到画布上 我正在绘制一些涉及单独绘制每个像素的东西 为此我使用类似的东西 for int x 0 x lt xMax x for int y 0 y lt
  • Android 模拟器插件无法初始化后端 EGL 显示

    我在 Cloudbees 上设置了 Jenkins 作业 并且可以在那里成功签出并编译我的 Android 项目 现在我想在 android 模拟器中运行一些 JUnit 测试并添加 Android 模拟器插件 我将 显示模拟器窗口 选项设
  • JavaMail 只获取新邮件

    我想知道是否有一种方法可以在javamail中只获取新消息 例如 在初始加载时 获取收件箱中的所有消息并存储它们 然后 每当应用程序再次加载时 仅获取新消息 而不是再次重新加载它们 javamail 可以做到这一点吗 它是如何工作的 一些背
  • 获取当前 android.intent.category.LAUNCHER 活动的实例

    我创建了一个库项目 并在多个应用程序之间共享 我实现了一个简单的会话过期功能 该功能将在一段时间后将用户踢回到登录屏幕 登录屏幕活动是我的主要活动 因此在清单中它看起来像这样
  • 如何使用 IF 检查 TextView 可见性

    我有一个 onCheckedChangeListener 来根据选择的单选按钮显示文本视图 我有 1 个疑问和 1 个难题 想知道是否有人可以帮助我 问题 您能否将单选组默认检查值设置为 否 单选按钮 以便一开始就不会检查任何内容 问题 如
  • 如何发布Android .aar源以使Android Studio自动找到它们?

    我正在将库发布到内部 Sonatype Nexus 存储库 Android Studio 有一个功能 可以自动查找通过 gradle 引用的库的正确源 我将 aar 的源代码作为单独的 jar 发布到 Nexus 但 Android Stu
  • Android Studio - Windows 7 上的 Android SDK 问题

    我对 Google i o 2013 上发布的最新开发工具 Android Studio 有疑问 我已经成功安装了该程序并且能够正常启动 我可以导入现有项目并对其进行编辑 但是 当我尝试单击 SDK 管理器图标或 AVD 管理器图标时 或者
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 如何根据 gradle 风格设置变量

    我想传递一个变量test我为每种风格设置了不同的值作为 NDK 的定义 但出于某种原因 他总是忽略了最后味道的价值 这是 build gradle apply plugin com android library def test andr
  • 在activity_main.xml中注释

    我是安卓新手 据我所知 XML 中的注释与 HTML 中的注释相同 使用 形式 我想在 Android 项目的 Activity main xml 配置文件中写一些注释 但它给了我错误 值得注意的是 我使用的是 Eclipse 但目前 我直
  • 一次显示两条Toast消息?

    我希望在一个位置显示一条 Toast 消息 并在另一位置同时显示另一条 Toast 消息 多个 Toast 消息似乎总是按顺序排队和显示 是否可以同时显示两条消息 是否有一种解决方法至少可以提供这种外观并且不涉及扰乱活动布局 Edit 看来
  • Firebase 添加新节点

    如何将这些节点放入用户节点中 并创建另一个节点来存储帖子 我的数据库参考 databaseReference child user getUid setValue userInformations 您需要使用以下代码 databaseRef
  • 按日期对 RecyclerView 进行排序

    我正在尝试按日期对 RecyclerView 进行排序 但我尝试了太多的事情 我不知道现在该尝试什么 问题就出在这条线上适配器 notifyDataSetChanged 因为如果我不放 不会显示错误 但也不会更新 recyclerview
  • 强制 Listview 不重复使用视图(复选框)

    我做了一个定制Listview 没有覆盖getView 方法 Listview 中的每个项目都具有以下布局 联系布局 xml

随机推荐

  • Rails new 给出“在任何源中都找不到正确版本的 Railties (4.2.5.1)”错误

    我正在尝试将 Rails 5 0 0 rc1 与 Ruby 2 3 1 一起使用 但是 如果我尝试在 programming 目录中创建一个新项目 我会得到以下信息 Documents Programming rails new foo C
  • 未找到资源样式/LaunchTheme

    我刚刚将应用程序的图标更改为较新的图标 现在每当我尝试构建并运行该应用程序时 我都会收到以下错误 Project build app intermediates manifests full debug AndroidManifest xm
  • 将 GZIP:ed 文本存储在 mysql 中?

    对于较大的应用程序和数据库来说 在将文本数据插入数据库之前对其进行 GZIP 压缩是很常见的事情吗 我猜想在再次解压缩之前 对实际文本字段的任何全文搜索都将不起作用 我还没有看到太多这样的事情 因为它基本上可以防止人们对 MySQL 端的数
  • Redux、规范化实体和 lodash 合并

    我使用 Redux React 和 Lodash 以及相当标准的标准化实体存储 当我在 redux 减速器中合并新实体时 对所有现有实体的引用都会发生变化 尽管没有被修改 从而导致任何纯组件重新渲染 lodash 合并是否有一种替代方法 可
  • 铁轨变了?方法总是错误的

    我正在尝试检查我的模型中复选框值是否已更改 如果改变了我想要我的方法set ip setting跑进去before save but my x即使我更改值 变量也总是返回 false 为什么它总是返回错误 我不明白我做错了什么 before
  • C 和 C++ 中类型的互操作性

    一个非常简单的问题 是否有任何保证 Cint和 C 是一样的int 在同一系统上 不言而喻 这当然是一个纯粹的理论问题 C 和 C 标准使用相同的语言来定义基本类型 但是 Fortran 2003 明确指出 use ISO C BINDIN
  • 在 C 中将块指令作为宏的参数传递

    我不知道这是否可能 我想像参数一样在宏中传递指令块 我将向您展示一个示例 define ADD MACRO size BLOCK for int i 0 i
  • ASP NET MVC 3 - 如何首先使用两个表和 Database.Setinitializer 在代码中重置数据库?

    我的问题在于缺乏MVC经验 基本上 我在数据库中有两个表 人 提供 对于每个我都创建了一个模型 一个控制器和一个模型 因此结构如下所示 public class Offer public int OfferID get set public
  • 发送大尺寸图像、视频和音频时 XMPP 客户端断开连接

    我已经使用 robbiehanson xmpp 示例实现了 xmpp 我可以聊天 也可以发送图像 我发送的图像被转换为 nsdata 并进一步转换为 Base64String 然后发送字符串 self xmppStream sendElem
  • Google 日历 API 的换行符?

    我正在尝试从我的网络应用程序中插入 Google 日历中的事件描述 但无法获取 n 或 br 被解释为换行符 谷歌日历如何解释换行符 帮助将不胜感激 您使用特定的客户端库吗 如果使用该协议 只需在内容元素中添加换行符即可
  • Django 应用程序初始化代码(例如连接到信号)

    我需要一个地方来运行特定于应用程序的初始化代码 例如连接到信号 当我将代码放入 init py我最终得到了模型的循环导入 有没有办法在框架设置时和执行任何请求之前触发函数 我使用相当旧的 django 96 6 版本 但我也对当前版本的解决
  • CakePHP 保存外键问题

    我在将 用户 表的外键保存在另一个名为 基本 的表中时遇到问题 我试图向用户询问一系列问题 每个完成的系列问题和用户 ID 都应该保存到相应的表中 这是在模型中进行验证后保存我的数据的内容 验证成功 所有数据均已保存 但外键保存为 0 pu
  • 如何将Mandelbrot的每个像素计算划分到不同的节点上?

    我的问题是我应该使用什么数据结构将工作分配给每个线程并从中获取计算值 我首先想到的是用保存 x y 和 iterate value 的结构填充向量 0 向量 63999 对于800x800像素 将这些向量传递给每个节点 gt 然后将给定向量
  • 当元素数据更改时,jQuery data() 属性不会更新

    我想使用 jQuerydata api 用于检索元素的所有数据属性 但这个 api 的缓存性质确实很烦人 有时我需要更改 javascript 中元素的某些数据属性 但是data api 始终返回每个数据属性的初始值 所以我必须使用attr
  • 在python中创建具有一定宽度边框的图像

    我用过PIL back color width for x in range w for y in range h if x 0 or y 0 or x w 1 or y h 1 pixels x y back color 我需要向图像添加
  • 合并 pandas 数据框列表

    我有一个数据框列表 我需要使用唯一的列将它们合并在一起 date 字段名称不同 因此不能使用 concat 我可以手动使用df 0 merge df 1 on Date merge df 3 on Date 等等将每个df一一合并 但问题是
  • 即使用户允许,Gmail 也会隐藏外部电子邮件图像

    我正在尝试在 html 电子邮件中插入带有图像的签名 我在使用 GMail 时遇到一些问题 它在 iPhone 客户端上运行良好 在用户接受图像之前 它们的大小正确 并且替代文本可见 每个图像的 HTML 为 img alt Bonne w
  • 警告主要版本 52 比该编译器支持的最高主要版本 51 更新

    基本上我是超级新手 开始在IT公司实习 我用 Xamarin 安装了 VS 我面临的问题非常令人沮丧 因此 即使我创建空项目 我也无法编译它并收到如下错误 严重性代码 说明 项目文件行抑制状态 警告主要版本 52 比该编译器支持的最高主要版
  • 如何让 Eclipse 记住 Android SDK 位置?

    每当我尝试使用 Eclipse 创建新的 Android 项目 在空工作区中 时 构建目标 列表都是空的 因此 我需要取消 新建 Android 项目 对话框 然后转到首选项并重新输入 Android 的 SDK 位置 完成此操作后 我可以
  • Android:使用自定义视图从对话框中检索 EditText 值

    我使用 AlertDialog Builder 类创建了一个对话框 并调用 builder setView int resource 为其提供文本输入的自定义布局 当用户点击 确定 时 我试图从布局上的 EditText 检索值 但是当调用