import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.util.Log;
import android.view.Window;
import android.view.WindowManager;
public class OptionsActivity extends PreferenceActivity {
private ListPreference mListPreference;
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
addPreferencesFromResource(R.xml.options);
mListPreference = (ListPreference) findPreference("listpreference");
mListPreference.setPersistent(false);
}
}
Exception Stacktrace is given below:
01-27 12:35:51.920: ERROR/AndroidRuntime(615): FATAL EXCEPTION: main
01-27 12:35:51.920: ERROR/AndroidRuntime(615): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.game/com.android.game.OptionsActivity}: android.util.AndroidRuntimeException: requestFeature() must be called before adding content
01-27 12:35:51.920: ERROR/AndroidRuntime(615): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
01-27 12:35:51.920: ERROR/AndroidRuntime(615): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
01-27 12:35:51.920: ERROR/AndroidRuntime(615): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
01-27 12:35:51.920: ERROR/AndroidRuntime(615): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
01-27 12:35:51.920: ERROR/AndroidRuntime(615): at android.os.Handler.dispatchMessage(Handler.java:99)
01-27 12:35:51.920: ERROR/AndroidRuntime(615): at android.os.Looper.loop(Looper.java:123)
01-27 12:35:51.920: ERROR/AndroidRuntime(615): at android.app.ActivityThread.main(ActivityThread.java:4627)
01-27 12:35:51.920: ERROR/AndroidRuntime(615): at java.lang.reflect.Method.invokeNative(Native Method)
01-27 12:35:51.920: ERROR/AndroidRuntime(615): at java.lang.reflect.Method.invoke(Method.java:521)
01-27 12:35:51.920: ERROR/AndroidRuntime(615): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
01-27 12:35:51.920: ERROR/AndroidRuntime(615): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
01-27 12:35:51.920: ERROR/AndroidRuntime(615): at dalvik.system.NativeStart.main(Native Method)
01-27 12:35:51.920: ERROR/AndroidRuntime(615): Caused by: android.util.AndroidRuntimeException: requestFeature() must be called before adding content
01-27 12:35:51.920: ERROR/AndroidRuntime(615): at com.android.internal.policy.impl.PhoneWindow.requestFeature(PhoneWindow.java:172)
01-27 12:35:51.920: ERROR/AndroidRuntime(615): at android.app.Activity.requestWindowFeature(Activity.java:2719)
01-27 12:35:51.920: ERROR/AndroidRuntime(615): at com.android.game.OptionsActivity.onCreate(OptionsActivity.java:20)
01-27 12:35:51.920: ERROR/AndroidRuntime(615): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
01-27 12:35:51.920: ERROR/AndroidRuntime(615): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
01-27 12:35:51.920: ERROR/AndroidRuntime(615): ... 11 more
7
A
Odpowiedz
12
Przesuń setRequestedOrientation() po Dodawanie/clearFlags() kod
EDIT: jak podano poniżej, nie widzę, że to za pomocą preferenceActivity. Tuż za zrozumienie, to jest PreferenceActivity.onCreate(), które nazywacie z super.onCreate():
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(com.android.internal.R.layout.preference_list_content);
mPreferenceManager = onCreatePreferenceManager();
getListView().setScrollBarStyle(View.SCROLLBARS_INSIDE_INSET);
}
Dlaczego poprosić FEATURE_NO_TITLE jeśli już to jest wymagane w super.onCreate()? Czasami bardzo pomocne jest skopiowanie kodu źródłowego Androida.
9
W tym przypadku super ustawia widok zawartości i przed ustawieniem widoku treści należy użyć właściwości requestWindowFeature. Tak więc użyj requestWindowFeature przed wywołaniem super.
public class LandNavSettings extends PreferenceActivity implements
SharedPreferences.OnSharedPreferenceChangeListener {
@Override
protected void onCreate(Bundle icicle) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(icicle);
}
}
Powiązane problemy
- 1. Datepicker daje czas nie pomiędzy wyjątkiem
- 2. Używanie ActionBarCompat i requestWindowFeature
- 3. Android - do czego służy requestWindowFeature (Window.FEATURE_INDETERMINATE_PROGRESS)?
- 4. Różnica między wyjątkiem: i wyjątkiem Wyjątkiem:
- 5. Tytuł bar ciągle pojawiające się nawet z requestWindowFeature lub Android: motyw
- 6. wybrać wszystkie wejścia z wyjątkiem ukryty (ale z jednym wyjątkiem)
- 7. Błąd adaptacji z wyjątkiem
- 8. Z wyjątkiem katalogu
- 9. Jquery przyciśnięcie wyjątkiem: {coś}
- 10. jQuery: Celuj za wyjątkiem ___?
- 11. Lua sortuj tabelę alfabetycznie, z wyjątkiem liczb:
- 12. dlaczego parseInt ('08 ') daje 0, natomiast parseInt ('07') daje 7
- 13. setTimeOut daje 233 fps, podczas gdy requestAnimationFrame daje 61
- 14. Regex z wyjątkiem szczególnych słów
- 15. Uwierzytelnianie Apache z wyjątkiem localhost
- 16. Alert.alert AlertManager z params wyjątkiem
- 17. Uzyskiwanie dziwne NullPointer wyjątkiem PROGUARD
- 18. Z wyjątkiem pamięci w matrycy
- 19. Attach JDB na nieprzechwyconego wyjątkiem
- 20. antlr dowolny znak z wyjątkiem
- 21. ActiveRecord wybierz z wyjątkiem kolumn
- 22. CLR vs wyjątkiem OCaml napowietrznych
- 23. usuwać foldery z wyjątkiem jednej
- 24. Class.forName daje ClassNotFound wyjątek
- 25. ElasticSearch daje ReceiveTimeoutTransportException
- 26. printf daje nieoczekiwany wynik
- 27. DateTime daje nieoczekiwany rezultat
- 28. Jstack daje java.lang.reflect.InvocationTargetException
- 29. Wykonanie HttpClient daje ConnectTimeoutException
- 30. Symfony2 daje pustą stronę
to nie działa. – Nuraiz
O tak, właśnie zobaczyłem, że rozszerzasz PreferenceActivity. Trudno odczytać niesformatowany tekst. Nie można tego zrobić poprzez rozszerzenie PreferenceActivity. Jak tylko zadzwonisz do super.onCreate(), ViewGroup zostanie skonfigurowany, a więc nie będziesz mógł zmieniać parametrów Window. MOŻESZ spróbować wywołać super.onCreate() w późniejszym stanie (po ustawieniach flagi okna), ale wątpię, czy możesz uzyskać dostęp do członka Window w tym stanie tworzenia. – Oliver
Próbowałem tego i to działa. thanx za pomoc – Nuraiz