我有一个BasicActivity,我想在用户点击浮动动作按钮时显示一个AlertDialog。当我在Fab上打卡时:应用程序停止,出现以下错误:
java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
我尝试将活动的主题从(默认BasicActivity)更改为:
android:theme="@style/AppTheme.NoActionBar"
至
android:theme="@style/Theme.AppCompat"
但当我打开它并出现以下错误时,整个活动就会停止:
This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead.
我看到了许多关于这个错误的问题,但我仍然没有弄明白。我只使用了一个默认活动(BasicActivity),我想显示一个简单的AlertDialog。
清单:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ListActivity"
android:label="@string/title_activity_list"
android:launchMode="singleTop"
android:theme="@style/AppTheme.NoActionBar"
/>
<activity
android:name=".AddActivity"
android:label="@string/title_activity_add"
android:theme="@style/AppTheme.NoActionBar">
</activity>
<activity
android:name=".DetailsActivity"
android:label="@string/title_activity_details"
android:parentActivityName=".ListActivity"
android:theme="@style/AppTheme.NoActionBar">
<!-- Parent activity meta-data to support 4.0 and lower -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>
</application>
活动:
public class ListActivity extends AppCompatActivity {
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
...
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());
builder.setIcon(android.R.drawable.ic_dialog_alert);
builder.setTitle("MyTitle");
builder.setMessage("MyMessage);
builder.setCancelable(false);
builder.setPositiveButton("SAVE", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
if (dialog != null) {
dialog.dismiss();
}
}
});
builder.setNegativeButton("NO", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
if (dialog != null) {
dialog.dismiss();
}
}
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
}
});
...
}
}
AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());
必须更换为:
AlertDialog.Builder builder = new AlertDialog.Builder(ListActivity.this);
我真的很抱歉浪费了你们的时间!
我使用[this]关键字而不是getApplicationContext()得到了这个问题。当您使用getApplicationContext()时。它将应用app的主题,而不是活动。
AlertDialog.Builder builder = new
AlertDialog.Builder(this);
builder.setIcon(android.R.drawable.ic_dialog_alert);
builder.setTitle("MyTitle");
builder.setMessage("MyMessage);
builder.setCancelable(false);
builder.setPositiveButton("SAVE", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
if (dialog != null) {
dialog.dismiss();
}
}
});
我正在尝试自定义AlertDialog按钮的强调色。但它并没有产生任何影响,它似乎是从系统中继承了颜色。这是我的风格/主题。 这是我试图构建警报对话框的代码。 编辑1: 我尝试了使用的方法,但它给出了相同的结果。 编辑2: 我还尝试更改对话框的重音颜色,但没有看到该颜色: 即使这样也不会改变按钮文本的颜色:(。
我必须手动检查onresume中的夜间模式标志,并手动更新现有活动的资源,还是我做错了什么?如果我旋转设备,活动在日落后被重新创建,那么黑暗主题被正确地拾取,但在旋转之前,它仍然会显示光明主题。 支持lib23.4.0,Android版本6.0。
所以我认为这是v22的常见问题,但当前的解决方案似乎并没有解决我的错误。我尝试将android: windowActionBar设置为false,将android: windowNoTitle设置为true,但这似乎没有帮助。 这是我的错误消息 这是我的styles.xml 也许我只是输入了错误的代码,所以希望有人能告诉我哪里出错了。谢谢你的时间。 编辑:我知道这个问题以前有人问过,但是目前所有的
我的主题如下: 但是,当我在应用程序中创建AlertDialogs时,它们根本没有主题。其他组件(如ActionBar)的颜色也正确。我错过什么了吗? 我正在使用AppCompat版本,我的设备安装了Android 4.4.4。
我的应用程序在Android N上运行良好,但在Android M上时崩溃: 奇怪的是,我甚至没有编辑任何与我的应用程序的主题有关的东西,所以这个错误非常奇怪: 致命异常:main Process:com.curlybraceApps.ruchir.Rescuer,PID:20394 java.lang.runtimeException:无法启动活动ComponentInfo{com.curlyb
我正试图在按下某个按钮时弹出一个警报对话框。我首先使用了Android Developer的示例代码而不是'这不起作用,所以我根据在这个站点上发现的情况进行了更改,但是现在我的程序在按下按钮后被迫停止。 就你的知识而言,这是在第二个不同于主要的活动中完成的。不确定这是否重要.... ‘ 碰撞日志:“03-25 19:34:24.373:E/AndroidRuntime(18828):致命异常:ma