0

我正在尝试为一个应用程序创建一个自定义设置活动,我想要一个正常的手机全屏活动和一个位于背部活动之上的平板电脑的自定义计算大小。但我对此有一些问题。

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);
    }
}

这是从主要活动中开始活动的地方。也许这就是我遗漏的地方?

4

1 回答 1

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();

  } 
}
于 2013-07-01T06:28:01.203 回答