最近写了一个自定义布局的Dialog,运行效果如下:
然后我想获取到自定义布局中的EditText控件,并得到其中的字符串,但是使用send_email = (EditText) findViewById(R.id.send_email_dialog_et);并不能获取到控件对象,经测试发现send_email对象为null。。。。
没办法,只好到一个技术群里问一下别人,很幸运我找到了解决方法,关键代码如下:
- final View layout = inflater.inflate(R.layout.send_email_dialog,
- (ViewGroup) findViewById(R.id.send_email_dialog_ll));
- final EditText sendEmailCon_ET = (EditText) layout.findViewById(R.id.send_email_dialog_et);
那位提供解决方法的网友说:想要获取自定义布局中的控件必须调用你所定义的View的findViewById方法,而不能像获得其他控件一样直接调用findViewById方法。。。。
最后附上dialog的自定义布局代码:
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/send_email_dialog_ll"
- android:orientation="vertical"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
- <TextView
- android:layout_width="wrap_content"
- android:textAppearance="?android:attr/textAppearanceMedium"
- android:layout_height="wrap_content"
- android:text="To : wuxianglong098@163.com"
- android:layout_gravity="center"
- android:layout_marginTop="4dp" />
- <EditText
- android:id="@+id/send_email_dialog_et"
- android:layout_height="wrap_content"
- android:layout_width="fill_parent"
- android:inputType="textMultiLine"
- android:lines="4"
- android:hint="@string/send_email_hint"
- android:scrollbarAlwaysDrawVerticalTrack="true"
- android:layout_marginTop="9dp">
- <requestFocus></requestFocus>
- </EditText>
- </LinearLayout>
THE END!
相关推荐
主要实现功能: 1、从Activity的TextView中获取字符串设置到...2、如何对自定义AlertDialog中的控件进行操作? 解答: 于fragment中的操作类似,首先要获取该layout的view,然后通过该view获取到其中控件进行操作。
// 获取自定义布局中的控件 EditText etInput = customView.findViewById(R.id.et_input); CheckBox cbCheckbox = customView.findViewById(R.id.cb_checkbox); // 设置按钮点击事件 builder.setPositiveButton("OK...
在Android开发中,`AlertDialog`是系统提供的一种基础对话框组件,用于向用户展示重要的信息或者获取用户的简单反馈。它通常包含一个标题、一个主要消息、一个或多个按钮,以及可选的列表项。`AlertDialog`的设计...
如果要在自定义布局中添加,可以使用`RadioButton`或`CheckBox`控件,并通过监听其点击事件来获取用户的选择。 最后,如果需要在对话框中接收用户的输入,可以使用`setInputType`和`setView`配合`EditText`。如下所...
在实际应用中,这个自定义控件可能通过一个`DialogFragment`或者自定义的`AlertDialog`来展示。这样可以方便地将其插入到任何Activity或Fragment中,而且可以控制其出现的位置和动画效果。开发者可能还提供了API来...
在Android开发中,`AlertDialog`是系统提供的一种用于与用户交互的组件,它通常用于显示警告、确认信息或者获取用户输入。默认的`AlertDialog`样式虽然实用,但有时可能无法满足开发者对界面个性化的需求。因此,...
在Android开发中,`AlertDialog`是系统提供的一种用于显示警告、确认信息或用户输入的对话框。默认情况下,`AlertDialog`并不自带输入框,但我们可以自定义它来实现弹出键盘以便用户输入信息。这个场景通常发生在...
在自定义布局文件中,可以添加各种控件,例如EditText、Button、TextView等,并通过findViewById方法获取到这些控件,并进行相应的业务逻辑处理。 三、事件监听实现技巧 事件监听是Android开发中的一种重要技术,...
本文将深入探讨如何创建一个自定义的选择对话框,这将涉及到Android UI设计、对话框的构建以及自定义控件的实现。 首先,让我们了解Android中的对话框(Dialog)。对话框是应用程序在主界面上叠加的一个小型窗口,...
2. **AlertDialog的使用**:在Android中,AlertDialog是一种轻量级对话框,可以用于提示用户信息或者获取用户确认。在登录场景中,如果用户名或密码错误,可以使用AlertDialog显示错误信息。通过Builder类实例化...
// 获取自定义Dialog布局中的控件 lLayout_bg = (LinearLayout) view.findViewById(R.id.lLayout_bg); txt_title = (TextView) view.findViewById(R.id.txt_title); txt_title.setVisibility(View.GONE); txt_...
在Android开发中,`AlertDialog`控件是一种非常重要的组件,用于向用户展示各种警告、确认或选择信息。它提供了一种优雅的方式与用户交互,确保用户了解应用中的关键信息或作出必要的决策。以下是对`AlertDialog`...
// 在这里可以获取布局中的元素并进行设置 return new AlertDialog.Builder(requireContext()) .setView(dialogView) .setTitle("自定义Dialog") .create(); } } ``` 3. **显示Dialog**:在需要的地方,...
在Android应用开发中,我们经常会遇到需要自定义对话框(AlertDialog)的情况,特别是在用户需要输入信息的场景。本文将详细讲解如何创建一个带有EditText的自定义AlertDialog,以便满足用户交互需求。 首先,我们...
在Android开发中,创建自定义的用户界面是提高应用程序用户体验的关键步骤之一。本文将深入探讨如何构建一个自定义的单选和多选对话框,这是一个适用于各种项目的UI模板。通过少量的代码改动,开发者可以轻松地对这...
在自定义视图中,你可以添加任意的控件,如`TextView`, `EditText`, `Button`等,并通过findViewById()方法获取它们的引用,以便在代码中进行操作。 ### 自定义行为 自定义行为主要是为对话框的按钮或其他元素添加...
在Android开发中,有时系统默认的AlertDialog无法满足我们的所有需求,这时我们需要自定义AlterDialog来实现更加个性化的功能和界面风格。自定义AlterDialog能够帮助我们更好地控制对话框的外观和交互,使其与项目的...
主要使用了AlertDialog、ActionSheetDialog来实现,AlertDialog的方法和android中自带的用法相似,ActionSheetDialo的用法和AlertDialog差不多,基本的使用思路是:获取Dialog布局、获取自定义Dialog布局中的控件、...
在`AlertDialogDemo`类中,首先需要初始化布局中的EditText控件,然后在`login`方法中构建`AlertDialog`。 ```java public class AlertDialogDemo extends AppCompatActivity { private EditText et_username, et_...