Активность с темой диалога не отображается как диалог
Я работаю над проектом Android, и я создаю деятельность, которая должна использовать тему диалога, но она не отображается правильно.
Ниже приведен макет моей деятельности XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView android:id="@+id/dialog_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="@android:style/TextAppearance.DialogWindowTitle"/>
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView android:id="@+id/dialog_message"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</ScrollView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
style="@android:style/DeviceDefault.ButtonBar.AlertDialog">
<Button android:id="@+id/btnCopyToClipbard"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Copy to Clipboard"
style="@android:style/Widget.DeviceDefault.Button.Borderless"/>
<Button android:id="@+id/btnClose"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Close"
style="@android:style/Widget.DeviceDefault.Button.Borderless"/>
</LinearLayout>
</LinearLayout>
Ниже описано, как определяется моя деятельность.
<activity
android:name=".CustomAlertDialogActivity"
android:theme="@style/Theme.AppCompat.Light.Dialog">
</activity>
Класс деятельности выглядит следующим образом
public class CustomAlertDialogActivity extends BaseActionBarActivity
{
TextView txtDialogTitle;
TextView txtDialogMessage;
Bundle bundle;
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.custom_alert_dialog);
txtDialogTitle = (TextView)findViewById(R.id.dialog_title);
txtDialogMessage = (TextView)findViewById(R.id.dialog_message);
bundle = getIntent().getExtras();
if (bundle != null)
{
txtDialogTitle.setText("An error occurred");
txtDialogMessage.setText("No error was specified");
return;
}
txtDialogTitle.setText(bundle.getString(CustomAlertDialog.DIALOG_TITLE));
txtDialogMessage.setText(bundle.getString(CustomAlertDialog.DIALOG_MESSAGE));
}
}
BaseActionBarActivity
мой собственный класс, который расширяется AppCompatActivity
Ниже показано, как отображается мое диалоговое окно с предупреждением.
В случае, если это имеет какое-то значение, это действие находится внутри библиотечного проекта, который включен в мое приложение.
Спасибо за вашу помощь
1 ответ
Это как ваш Activity
ищет меня
(Android 6.0 и Android 4.4 соответственно)
Чтобы проверить, я просто скопировал ваш код в пустой проект, и, как вы видите, он работает (хотя и требует некоторой полировки пользовательского интерфейса).
Мое лучшее предположение, что вы непреднамеренно делаете setTheme()
и т.д. где-нибудь в суперклассе BaseActionBarActivity
, Таким образом, в качестве шага 1, заменить BaseActionBarActivity
с AppCompatActivity
и посмотрим, изменит ли это что-нибудь.