我正在开发一个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
以下是我的警告对话框的显示方式
如果它有任何不同,这个活动是在我的应用程序中包含的库项目中。