У меня возникли проблемы с отображением настраиваемого диалогового окна с предупреждением. Чтобы представить проблему, мое приложение может динамически переключаться между Theme.Holo.Light и Theme.Holo.Dark. Когда я отображаю предупреждение с макетом по умолчанию, диалоговое окно предупреждения наследует тему действия без проблем. Когда я определяю пользовательский макет для диалогового окна предупреждения (содержащего textviews / edittexts), они отображаются нормально, когда приложение установлено в Theme.Holo.Dark, однако, когда оно установлено в Theme.Holo.Light, текст в текстовых представлениях отображается как очень светло-серый, а границы текста редактирования и текст почти невидимы (белый на белом фоне). Единственный способ как-то исправить это - напрямую объявить цвет текста в текстовых представлениях в файле макета XML настраиваемого диалога для каждого текстового поля. Однако, чтобы использовать этот метод, мне нужно создать отдельные макеты для тем holo.light и holo.dark. В дополнение к этому я не могу найти никакой информации о том, как изменить цвет границы для поля edittext, что также является проблемой. Я попытался создать и указать тему в AlertDialog.Builder, однако, кажется, что это никогда не применяет стили текста, и, как я уже говорил, я не могу понять, как изменить цвет границы для полей edittext или сделать их специально наследуемыми. из темы Holo.Light. Соответствующий код ниже, и любая помощь будет принята с благодарностью.
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView android:text="First Name" android:id="@+id/fname" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
<EditText android:text="" android:id="@+id/fname_input" android:layout_width="225sp" android:layout_height="wrap_content"></EditText>
</TableRow>
<TableRow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView android:text="Last Name" android:id="@+id/lname" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
<EditText android:text="" android:id="@+id/lname_input" android:layout_width="225sp" android:layout_height="wrap_content"></EditText>
</TableRow>
</TableLayout>
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
String text = getArguments().getString("text");
String title = getArguments().getString("title");
View layout_view = null;
int layout = getArguments().getInt("layout");
if(layout != -1){
LayoutInflater inflater = (LayoutInflater) getActivity().getApplicationContext().getSystemService(LAYOUT_INFLATER_SERVICE);
layout_view = inflater.inflate(layout, (ViewGroup)getActivity().findViewById(R.layout.main));
}
return new AlertDialog.Builder(getActivity()/*,AlertDialog.THEME_HOLO_DARK*/)
.setTitle(title)
.setMessage(text)
.setView(layout_view)
.setPositiveButton(android.R.string.ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
}
)
.create();
}