Skip to content Skip to sidebar Skip to footer

How To Add A Custom Dialog With Listview And Search Function In Android Fragment

I want to create exactly same view shown below, I used showDialog function to display dialog. private void showDialog() { FragmentTransaction ft = getFragmentManager().beginT

Solution 1:

enter image description here

    final Dialog dialog_data = newDialog(context);

    dialog_data.requestWindowFeature(Window.FEATURE_NO_TITLE);

    dialog_data.getWindow().setGravity(Gravity.CENTER);

    dialog_data.setContentView(R.layout.custom_alertdialog);

    WindowManager.LayoutParams lp_number_picker = newWindowManager.LayoutParams();
    Windowwindow = dialog_data.getWindow();
    lp_number_picker.copyFrom(window.getAttributes());

    lp_number_picker.width = WindowManager.LayoutParams.MATCH_PARENT;
    lp_number_picker.height = WindowManager.LayoutParams.WRAP_CONTENT;

    window.setGravity(Gravity.CENTER);
    window.setAttributes(lp_number_picker);

    TextView alertdialog_textview = (TextView) dialog_data.findViewById(R.id.alertdialog_textview);
    alertdialog_textview.setText(selected_string);
    alertdialog_textview.setHint(selected_string);

    Button dialog_cancel_btn = (Button) dialog_data.findViewById(R.id.dialog_cancel_btn);
    dialog_cancel_btn.setOnClickListener(newView.OnClickListener()
    {
        @OverridepublicvoidonClick(View v)
        {
            if(dialog_data != null)
            {
                dialog_data.dismiss();
                dialog_data.cancel();
            }

        }
    });

    EditText filterText = (EditText) dialog_data.findViewById(R.id.alertdialog_edittext);
    ListView alertdialog_Listview = (ListView) dialog_data.findViewById(R.id.alertdialog_Listview);
    alertdialog_Listview.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
    final ArrayAdapter<String>  adapter = newArrayAdapter<>(context, android.R.layout.simple_list_item_single_choice, array_data);
    alertdialog_Listview.setAdapter(adapter);
    alertdialog_Listview.setOnItemClickListener(newAdapterView.OnItemClickListener()
    {
        @OverridepublicvoidonItemClick(AdapterView<?> a, View v, int position, long id)
        {
            Utility.hideKeyboard(context,v);


 //data.setText(String.valueOf(a.getItemAtPosition(position)));if(dialog_data != null)
            {
                dialog_data.dismiss();
                dialog_data.cancel();
            }
        }
    });

    filterText.addTextChangedListener(newTextWatcher()
    {
        @OverridepublicvoidbeforeTextChanged(CharSequence s, int start, int count, int after)
        {

        }

        @OverridepublicvoidonTextChanged(CharSequence s, int start, int before, int count)
        {

        }

        @OverridepublicvoidafterTextChanged(Editable s)
        {
            adapter.getFilter().filter(s);
        }
    });

    dialog_data.show();

custom_alertdialog.xml

<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/alertdialog_linearlayout"android:layout_height="wrap_content"android:layout_width="match_parent"android:background="@null">

<LinearLayoutandroid:layout_height="wrap_content"android:layout_width="match_parent"android:orientation="vertical"android:layout_marginTop="20dp"android:background="#FFFFFF"><TextViewandroid:id="@+id/alertdialog_textview"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="search"android:textColor="#000000"android:textSize="16sp"android:layout_marginTop="220dp"android:layout_marginLeft="20dp"android:layout_marginStart="20dp"android:layout_marginRight="20dp"android:layout_marginEnd="20dp"android:gravity="center"android:drawableLeft="@drawable/ic_launcher"android:drawableStart="@drawable/ic_launcher"android:drawablePadding="10dp"/><EditTextandroid:id="@+id/alertdialog_edittext"android:layout_width="match_parent"android:layout_height="wrap_content"android:ellipsize="end"android:textStyle="normal"android:textColorHint="#939598"android:textColor="#4b4f54"android:layout_marginLeft="20dp"android:layout_marginStart="20dp"android:layout_marginRight="20dp"android:layout_marginEnd="20dp"android:layout_marginTop="10dp"android:layout_marginBottom="10dp"android:maxLines="1"android:textCursorDrawable="@null"android:gravity="start"android:inputType="text"android:theme="@style/alertdialog_edittextTheme"android:layout_gravity="start" /><ListViewandroid:id="@+id/alertdialog_Listview"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_marginLeft="20dp"android:layout_marginStart="20dp"android:layout_marginRight="20dp"android:layout_marginEnd="20dp"android:choiceMode="singleChoice"/></LinearLayout><Buttonandroid:id="@+id/dialog_cancel_btn"android:layout_width="30dp"android:layout_height="30dp"android:layout_alignParentRight="true"android:layout_alignParentEnd="true"android:text="X"android:textColor="#000000"android:gravity="center"android:layout_alignParentTop="true"android:layout_marginRight="10dp"android:layout_marginEnd="10dp"android:layout_marginTop="5dp"android:background="@drawable/round_button"/>

 </RelativeLayout>

 round_button.xml


<shape xmlns:android="http://schemas.android.com/apk/res/android"android:innerRadius="0dp"android:shape="oval"android:thicknessRatio="1.9"android:useLevel="false" >

<solidandroid:color="@android:color/white" /><sizeandroid:width="100dp"android:height="100dp"/><strokeandroid:width="1dp"android:color="#000000"/>

Solution 2:

Just replace this line with new one

older one---> final Dialog dialog_data = new Dialog(context);

New one---> final Dialog dialog_data = new Dialog(getActivity());

Post a Comment for "How To Add A Custom Dialog With Listview And Search Function In Android Fragment"