gpt4 book ai didi

android - AlertDialog 上缺少按钮 |安卓 7.0 (Nexus 5x)

转载 作者:IT老高 更新时间:2023-10-28 21:40:25 26 4
gpt4 key购买 nike

我正在尝试创建 AlertDialog 但按钮未显示。仅在 Android 7.0 中看到此问题:

final AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("This app needs location access");
builder.setMessage("Please grant location access so this app can detect beacons.");
builder.setPositiveButton(android.R.string.ok, null);
builder.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
@TargetApi(Build.VERSION_CODES.M)
public void onDismiss(final DialogInterface dialog) {
requestPermissions(new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, PERMISSION_REQUEST_COARSE_LOCATION);
}
});
builder.show();

AlertDialog

最佳答案

确实,似乎需要定义 AlertDialog 主题。上面的另一种方法是在 Application 主题中定义 AlertDialog 主题:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- ... other AppTheme items ... -->
<item name="android:alertDialogTheme">@style/AlertDialogTheme</item>
</style>

<style name="AlertDialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>

那么只用Context参数创建AlertDialog.Builder就足够了。

注意:以上内容似乎只适用于 android.app.AlertDialog.Builder 而不适用于 AppCompat builder (android.support.v7. app.AlertDialog.Builder,至少从 25.0.1 版本开始)。在 AppCompat builder 的情况下,我必须将主题 ID 作为第二个参数传递给 Builder 构造函数以使按钮可见。

关于android - AlertDialog 上缺少按钮 |安卓 7.0 (Nexus 5x),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39621606/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com