Я пытаюсь открыть диалоговое окно при щелчке виджета. Я решил проблему, очищающую действие, запущенное по щелчку с android:theme="@android:style/Theme.Dialog"
. К сожалению, я не могу достигнуть того же вида диалогового окна.
Это - результат:
Вместо этого я хотел бы достигнуть этого результата (за исключением кнопки, конечно):
Желаемое диалоговое окно от виджета
(диалоговое окно виджета Вы видите хранение продвинутого экрана),
Поскольку Вы видите, что существуют некоторые различия: цвет элементов списка, цвет текста и разделителя элемента списка. Существует ли предопределенная тема/стиль для получения того же вида стандартного диалогового окна? В противном случае, за чем шаги должны следовать для достижения того результата?
Я видел, что виджет, обеспеченный FoxyRing, имеет поведение, которое я хотел бы иметь.
Почему бы не использовать «традиционное» основное действие с прозрачным фоном
и не вызвать из него стандартный диалог?
...хорошо, если я вас правильно понял, это очень легко поможет, не так ли?
вы можете динамически создать диалоговое окно следующим образом:
Context mContext = this;
Dialog dialog = new Dialog(mContext);
dialog.setContentView(R.layout.data_dialog);
dialog.setTitle("Your title");
AlertDialog.Builder builder;
AlertDialog alertDialog;
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.data_dialog,
(ViewGroup) findViewById(R.id.AbsoluteLayout01));
builder = new AlertDialog.Builder(mContext);
builder.setView(layout);
alertDialog = builder.create();
alertDialog.show();
final EditText txtUsername = (EditText) layout.findViewById(R.id.txtUsername);
final AlertDialog thisDialog = alertDialog;
Button btnSave = (Button) layout.findViewById(R.id.btnSave);
btnSave.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String strtxtUsername = txtUsername.getText().toString();
//do something...
}
});
Чтобы закрыть диалоговое окно, вызовите thisDialog.dismiss ();
Стиль выглядит как обычный Theme.Light.NoTitleBar с ListView со значком и текст заголовка.
Надеюсь, это поможет!
На самом деле существует гораздо более простой способ сделать это, чем то, что я предложил ниже.
Взгляните на:
https://developer.android.com/guide/topics/ui/dialogs.html
под заголовок «Добавление списка».