V
V
vladocc2015-12-28 10:27:10
Java
vladocc, 2015-12-28 10:27:10

How to create popup menu with EditText in Android?

Мне необходимо, чтобы по нажатии клавиши появлялось меню, небольшим размеров (т.е. не на весь экран), в котором будет TextView, EditText и Button. Каким образом такое реализуется, я не совсем понимаю, по этому задаю к более опытным людям вопрос. Каким образом это сделать?
Есть предположение, что это просто переход к новой активность у которой стоит тема. что-то вроде "@android:style/Theme.DeviceDefault.Dialog.MinWidth". Верна ли эта идея или есть гораздо более простые способы?

Answer the question

In order to leave comments, you need to log in

1 answer(s)
P
PaulWeb, 2015-12-28
@vladocc

here is a good library Material dialogs , And not much more yes and here is a demo link for evaluation

Dialog.Builder builder = new SimpleDialog.Builder(){
            @Override
            protected void onBuildDone(Dialog dialog) {
                dialog.layoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
            }
            @Override
            public void onNegativeActionClicked(DialogFragment fragment) {
                super.onNegativeActionClicked(fragment);
            }

            @Override
            public void onPositiveActionClicked(final DialogFragment fragment) {
                final EditText codeField = (EditText) fragment.getDialog().findViewById(R.id.facCode);
                final View panelProgress=fragment.getDialog()
                        .findViewById(R.id.facProgressPanel);
                final ProgressView progress=(ProgressView)fragment.getDialog()
                        .findViewById(R.id.facProgress);
                if (Is.empty(codeField)) {
                    App.showMessage(R.string.warn_fields);
                    return;
                }
                ......
            }
        };

        builder.title(App.getResStr(R.string.activation))
                .positiveAction(App.getResStr(R.string.send))
                .negativeAction(App.getResStr(R.string.cancel))
                .contentView(R.layout.fragment_activation);
        DialogFragment fragment = DialogFragment.newInstance(builder);
        fragment.show(context.getSupportFragmentManager(), null);

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical"
    android:padding="5dp" >

    <EditText
        android:id="@+id/facCode"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/hint_activation"
        android:layout_centerInParent="true"
        android:inputType="number"
        android:singleLine="true"
        android:textSize="16sp" />
    <LinearLayout
        android:id="@+id/facProgressPanel"
        android:orientation="horizontal"
        android:gravity="center"
        android:visibility="gone"
        android:background="@color/xxxxxx"
        android:layout_centerInParent="true"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <com.rey.material.widget.ProgressView
            android:id="@+id/facProgress"
            style="?attr/xxxxxxx

            />
    </LinearLayout>
</RelativeLayout>

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question