@vladocc

Как создать всплывающее меню с EditText в Android?

Мне необходимо, чтобы по нажатии клавиши появлялось меню, небольшим размеров (т.е. не на весь экран), в котором будет TextView, EditText и Button. Каким образом такое реализуется, я не совсем понимаю, по этому задаю к более опытным людям вопрос. Каким образом это сделать?

Есть предположение, что это просто переход к новой активность у которой стоит тема. что-то вроде "@android:style/Theme.DeviceDefault.Dialog.MinWidth". Верна ли эта идея или есть гораздо более простые способы?
  • Вопрос задан
  • 890 просмотров
Решения вопроса 2
@PaulWeb
вот хорошая библиотека Material dialogs, И еще не много да и вот ссылка на demo для оценки demo

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>
Ответ написан
@lopatoid
TextView, EditText и Button не на весь экран?
Похоже на обычный AlertDialog.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Sports.ru Москва
До 175 000 руб.
KUPIBILET.RU Санкт-Петербург
от 100 000 руб.
Frogogo Москва
от 70 000 руб.
10 дек. 2018, в 09:38
1000 руб./за проект
10 дек. 2018, в 09:04
300 руб./в час
10 дек. 2018, в 08:44
10000 руб./за проект