Search code examples
androidandroid-layoutandroid-edittextandroid-alertdialog

How to get the value of EditText from alertDialog.setView(R.layout.some_layout)


I have set a custom layout resourse file as View for Alert Dialog but im unalbe to fetch/ get values from views in the layout. Can someone point out what im doing wrong here? or is there another way to do achieve this?

some_layout.xml

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical">
    <EditText android:inputType="textAutoComplete"
        android:textSize="20sp"
        android:id="@+id/title"
        android:scrollHorizontally="true"
        android:layout_height="70dp"
        android:hint="Title / Username"
        android:layout_width="250dp"
        android:layout_gravity="center"
        android:autofillHints="username" />
    <EditText android:inputType="textVisiblePassword"
        android:textSize="20sp"
        android:id="@+id/password"
        android:scrollHorizontally="true"
        android:layout_height="70dp"
        android:hint="Password"
        android:layout_width="250dp"
        android:layout_gravity="center"
        android:autofillHints="password" />

</LinearLayout>

Code :

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);

Error : ( 'some_layout' in EditText definition is highlighted in red and it has this message)

Cannot resolve symbol 'password_item_dialog'

Solution

  • I solved it myself

    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);