我正在尝试为应用创建一个自定义设置活动,其中我希望手机能够进行正常的全屏活动,而平板电脑的自定义计算尺寸则位于后方活动之上。但是我遇到了一些问题。
public class ActivityAppSettings extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
if (getApplication() != null && ((ApplicationBase) getApplication()).mTheme > 0) {
setTheme( ((ApplicationBase) getApplication()).mTheme );
}
super.onCreate(savedInstanceState);
getWindow().setBackgroundDrawable(new ColorDrawable(0));
getWindow().setLayout(800, 600);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_app_settings);
}
}
这是我的活动(这仅用于测试,因此没有平板电脑检查或任何其他内容)。它也有点工作。我没有标题,内容的大小只填写我设置的宽度和高度,并在屏幕上居中。但是,内容背景不透明。
我有一些全局自定义主题,因此将它们更改为Dialog并不好,因为它会覆盖窗口内容的主题。但是,为了尝试找到问题,我确实尝试将对话框主题更改为Android的对话框主题。这也不起作用。内容周围仍然是黑色背景。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case R.id.menu_controller_app_settings:
Intent intent = new Intent(this, ActivityAppSettings.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
startActivity(intent);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
这是活动从主要活动中开始的地方。也许这是我遗失的地方?
答案 0 :(得分:1)
请尝试以下代码。
public class AlertDialogActivity extends Activity {
private Context mContext;
private String message;
@Override
protected void onCreate(Bundle savedInstanceState) {
mContext = this;
super.onCreate(savedInstanceState);
final Dialog myDialog = new Dialog(mContext);
myDialog.setContentView(R.layout.dialog_layout);
myDialog.getWindow().setBackgroundDrawable(new ColorDrawable(0));
TextView titleTextView = (TextView) myDialog
.findViewById(R.id.DialogTitleTextView);
TextView messageTextView = (TextView) myDialog
.findViewById(R.id.DialogMessageTextView);
Button okButton = (Button) myDialog
.findViewById(R.id.DialogOkButton);
Button cancelButton = (Button) myDialog
.findViewById(R.id.DialogCancelButton);
titleTextView.setText(mContext.getString(R.string.app_name));
titleTextView.setTypeface(Calculations
.getBoldTypeFaceInstance(mContext));
messageTextView.setText(message);
messageTextView.setTypeface(Calculations
.getRegularTypeFaceInstance(mContext));
okButton.setTypeface(Calculations.getBoldTypeFaceInstance(mContext));
myDialog.show();
}
}