如何从 alertDialog.setView(R.layout.some_layout) 获取 EditText 的值
Posted
技术标签:
【中文标题】如何从 alertDialog.setView(R.layout.some_layout) 获取 EditText 的值【英文标题】:How to get the value of EditText from alertDialog.setView(R.layout.some_layout) 【发布时间】:2021-09-23 23:20:09 【问题描述】:我已将自定义布局资源文件设置为警报对话框的视图,但我无法从布局中的视图中获取/获取值。有人可以指出我在这里做错了什么吗?还是有其他方法可以做到这一点?
some_layout.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
android:orientation="vertical">
<EditText android:inputType="textAutoComplete"
android:textSize="20sp"
android:id="@+id/title"
android:scrollHorizontally="true"
android:layout_
android:hint="Title / Username"
android:layout_
android:layout_gravity="center"
android:autofillHints="username" />
<EditText android:inputType="textVisiblePassword"
android:textSize="20sp"
android:id="@+id/password"
android:scrollHorizontally="true"
android:layout_
android:hint="Password"
android:layout_
android:layout_gravity="center"
android:autofillHints="password" />
</LinearLayout>
代码:
AlertDialog.Builder alertDialog = new AlertDialog.Builder(context);
alertDialog.setTitle("Credentials");
alertDialog.setView(R.layout.some_layout);
EditText title = (TextView) some_layout.findViewById(R.id.title);
错误:(EditText 定义中的“some_layout”以红色突出显示,并且有此消息)
Cannot resolve symbol 'password_item_dialog'
【问题讨论】:
【参考方案1】:我自己解决了
LayoutInflater layoutInflater = LayoutInflater.from(context);
final View alertView = layoutInflater.inflate(R.layout.some_layout, null);
AlertDialog.Builder alertDialog = new AlertDialog.Builder(context);
alertDialog.setView(alertView);
EditText title = (EditText) alertView.findViewById(R.id.title);
【讨论】:
以上是关于如何从 alertDialog.setView(R.layout.some_layout) 获取 EditText 的值的主要内容,如果未能解决你的问题,请参考以下文章