Ich wechsele meine alten Dialoge zu DialogFragment, aber die Themen und Stile scheinen nicht zu funktionieren.Thema nicht auf DialogFragment auf Android
Ich verwende das DialogFragment aus der Kompatibilitätsbibliothek v4, und in der onCreate-Methode habe ich versucht, setStyle (Stil, Thema) aufzurufen; mit vielen verschiedenen Themen, aber der Dialog erscheint immer als "alter" Dialog im Emulator mit Android 4.0.3 (d. h. er wird nicht im Holo-Thema angezeigt).
Gibt es noch etwas, was ich tun sollte? Wird durch die Verwendung der Kompatibilitätsbibliothek das Holo-Design oder irgendetwas deaktiviert? Wenn dies der Fall ist, sollte ich zwei DialogFragments erstellen, eines für ältere Versionen und eines für neuere Versionen?
Danke!
Hier ist der (vereinfachte) Code für meinen Dialog. Ich habe sowohl Theme_Holo_Dialog_NoActionBar als auch Theme_DeviceDefault_Dialog_NoActionBar ausprobiert, aber der Android 4-Emulator zeigt den Dialog immer als "alten" Dialog an, anstatt das Holo-Thema zu verwenden. Was mache ich falsch? :(
[...]
import android.support.v4.app.DialogFragment;
[...]
public class AlertDialogFragment extends DialogFragment {
public static AlertDialogFragment newInstance(int id) {
AlertDialogFragment f = new AlertDialogFragment();
Bundle args = new Bundle();
args.putInt("id", id);
f.setArguments(args);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
int style = DialogFragment.STYLE_NORMAL, theme = 0;
theme = android.R.style.Theme_Holo_Dialog_NoActionBar;
setStyle(style, theme);
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
mId = getArguments().getInt("id");
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity())
.setTitle(mTitle)
.setMessage(mMessage)
.setPositiveButton(getString(R.string.btn_ok), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dismiss();
}
});
return builder.create();
}
Welche Art sind von Ihnen zu erben, zeigen uns styles.xml auch, was ist Ihr targetSdk? Es muss über 11 sein – Blundell
Ich bin auf SDK 14 ausgerichtet, und ich benutze nicht einmal eine Datei styles.xml, ich rufe nur setStyle (Stil, Thema); In der onCreate-Methode des DialogFragments versuchen mehrere Kombinationen von Stil und Thema. Zum Beispiel, in meinem "alten" Dialog habe ich android.R.style.Theme_DeviceDefault_Dialog_NoActionBar verwendet und es zeigte sich als Holo im ICS-Emulator, aber jetzt mit dem gleichen Thema es nicht tut. – LuTHieR
Versuchen Sie implizit mit Holo: 'android.R.style.Theme_Holo_Dialog' – Blundell