Ho un Activity
che si estende ActionBarActivity
. Ogni volta che provo a creare un AlertDialog
in esso, blocca alla riga in cui si crea dialogo dando questo erroreImpossibile creare alertDialog in ActionBarActivity
java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
ma sto già utilizzando Appcompat
tema Theme.AppCompat.Light.NoActionBar
come sto usando barra degli strumenti. Quale potrebbe essere la ragione di questo? Ecco la mia attività:
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
public class MyActivity extends ActionBarActivity {
Toolbar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_comments);
toolbar = (Toolbar)findViewById(R.id.tool_bar_comment);
setSupportActionBar(toolbar);
AlertDialog alertDialog;
alertDialog = new AlertDialog.Builder(getApplicationContext()).create();
alertDialog.setTitle("Network error");
alertDialog.setMessage("Check network connection and try again.");
alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, "ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
finish();
}
});
alertDialog.show();
}
}
Ecco il mio file Mainfest:
<application
android:name=".Networking.AppController"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
...
<activity
android:name=".MyActivity"
android:label="@string/myactivity"
>
</activity>
</application>
e, qui è la styles.xml
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
</style>
Aggiungendo l'attributo android:theme
per l'attività in MainFest non ha aiutato affatto.
<activity
android:name=".MyActivity"
android:label="@string/myactivity"
android:theme="@style/Theme.AppCompat.NoActionBar"
>
possibile duplicato del [È necessario utilizzare un tema Theme.AppCompat (o discendente) con questa attività] (http://stackoverflow.com/questions/21814825/you-need-to-use-a-theme-appcompat-theme-or-descendant-with-this-activity) –
Non è necessario utilizzare android: theme = "@ style/Theme.AppCompat.NoActionBar" usa semplicemente android: theme = "@ style/AppTheme" – arjunkn