Musisz użyć motywu.Motyw AppCompat (lub potomek) z tą aktywnością
Android Studio 0.4.5
Dokumentacja Androida do tworzenia niestandardowych okien dialogowych: http://developer.android.com/guide/topics/ui/dialogs.html
Jeśli chcesz mieć własne okno dialogowe, możesz zamiast tego wyświetlić aktywność jako okno dialogowe, zamiast używać interfejsów API okna dialogowego. Po prostu utwórz aktywność i ustaw jej temat na temat.Holo.Dialog w
<activity>
element manifestu:
<activity android:theme="@android:style/Theme.Holo.Dialog" >
Jednak, kiedy próbowałem tego dostaję następujący wyjątek:
java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity
Popieram po, a nie mogę użyć czegoś większego niż 10 przez min:
minSdkVersion 10
targetSdkVersion 19
W moich stylach mam następujące:
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
I w moim manifeście mam to do działania:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:theme="@android:style/Theme.Holo.Light.Dialog"
android:name="com.ssd.register.Dialog_update"
android:label="@string/title_activity_dialog_update" >
</activity>
Tworzenie okna dialogowego w ten sposób było czymś, co przeskakiwałem, ponieważ już ukończyłem układ.
Czy ktoś może mi powiedzieć, jak mogę obejść ten problem?30 answers
Powodem, dla którego masz ten problem, jest to, że działanie, do którego próbujesz zastosować motyw okna dialogowego, rozszerza ActionBarActivity
, co wymaga zastosowania motywu AppCompat
.
Update : rozszerzenie AppCompatActivity
również miałoby ten problem
W tym przypadku zmień dziedziczenie Javy z ActionBarActivity
Na Activity
i pozostaw motyw okna dialogowego w manifeście w takim stanie, jakim jest, nie Theme.AppCompat
wartość
Ogólna zasada jest taka, że jeśli chcesz, aby Twój kod obsługiwał starsze wersje Androida powinny mieć motyw AppCompat
, A kod Javy powinien rozszerzać AppCompatActivity
. Jeśli masz * działanie, które nie wymaga tego wsparcia, na przykład dbasz tylko o najnowsze wersje i funkcje Androida, możesz zastosować do niego dowolny motyw, ale kod java musi rozszerzyć zwykły stary Activity
.
Uwaga: przy zmianie z AppCompatActivity
(lub podklasy, ActionBarActivity
) Na Activity
, Należy również zmienić różne wywołania z "wsparciem" na odpowiednie wywołanie BEZ "wsparciem". Więc, zamiast getSupportFragmentManager
, wywołaj getFragmentManager
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-13 13:39:41
Wystarczy dodać android:theme="@style/Theme.AppCompat.Light"
do znacznika aplikacji w pliku AndroidManifest.xml
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-04 11:33:33
Kopiowanie odpowiedzi z @MarkKeen w komentarzach powyżej, ponieważ miałem ten sam problem.
Miałem błąd podany na górze posta i stało się po dodaniu okna dialogowego alertu. Mam wszystkie istotne informacje o stylu w manifeście. Mój problem został wyleczony przez zmianę odniesienia kontekstowego w kreatorze alertów-zmieniłem:
new android.support.v7.app.AlertDialog.Builder(getApplicationContext())
Do:
new android.support.v7.app.AlertDialog.Builder(this)
I żadnych więcej problemów.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-27 00:59:26
Min sdk wynosi 10. ActionBar
jest dostępny z poziomu api 11. Więc dla 10 będziesz używać AppCompat
z biblioteki wsparcia, dla której musisz użyć Theme.AppCompat
lub potomka tego samego.
Użyj
android:theme="@style/Theme.AppCompat" >
Lub jeśli nie chcesz paska akcji na górze
android:theme="@style/Theme.AppCompat.NoActionBar">
Więcej informacji @
Http://developer.android.com/guide/topics/ui/actionbar.html
Edit:
Mogłem źle odczytać post op.
Wygląda na to, że op chce mieć okno dialogowe z motywem aktywności. Tak jak już sugerowane przez Bobbake4 extend Activity
zamiast ActionBarActivity
.
Zobacz też atrybuty look @ Dialog w linku poniżej
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-15 09:27:49
U mnie to zadziałało, po prostu się zmieniłem:
final AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());
Do tego:
final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-21 20:27:18
Doświadczałem tego problemu, mimo że mój temat był tematem AppCompat
, a Moja aktywność była AppCompatActivity
(lub Activity
, jak sugerowano w odpowiedziach innych). Więc posprzątałem, przebudowałem i odtworzyłem projekt.
(Build -> Clean Project ; Build -> Rebuild Project ; Run - > Run)
to może wydawać się głupie, ale teraz działa świetnie !
mam nadzieję, że to pomoże!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-19 21:48:53
Oto, co mi to naprawiło: zamiast określać motyw w manifeście, zdefiniowałem go w onCreate
dla każdego działania, które rozszerza ActionBarActivity
:
@Override
protected void onCreate(Bundle savedInstanceState) {
setTheme(R.style.MyAppTheme);
super.onCreate(savedInstanceState);
setContentView(R.layout.my_activity_layout);
...
}
Tutaj MyAppTheme
jest potomkiem Theme.AppCompat
i jest zdefiniowany w xml. Zwróć uwagę, że motyw musi być ustawiony przed super.onCreate
i setContentView
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-14 21:37:26
Przejdź do swojego stylu i umieść rodzica
parent="Theme.AppCompat"
Zamiast
parent="@android:style/Theme.Holo.Light"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-03 10:45:13
W moim przypadku nie mam pliku values-v21 w katalogu res. Następnie utworzyłem go i dodałem do niego następujące Kody:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-23 09:04:40
Jeśli chcesz rozszerzyć ActionBarActivity, musisz użyć swojego stylu.xml:
<!-- Base application theme. -->
<style name="AppTheme" parent="AppTheme.Base"/>
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
Jeśli ustawisz jako główny motyw aplikacji jako Android: Theme.Materiał.Światło zamiast AppTheme.Base wtedy otrzymasz " IllegalStateException:musisz użyć motywu.AppCompat theme (lub potomek) z tym działaniem " error.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-03 22:10:28
Zmień temat pożądanego działania. To mi działa:
<activity
android:name="HomeActivity"
android:screenOrientation="landscape"
android:theme="@style/Theme.AppCompat.Light"
android:windowSoftInputMode="stateHidden" />
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-07 18:36:18
Miałem ten sam problem, ale rozwiązał się, gdy umieściłem to na manifest: android: theme= " @style / Theme.AppCompat.
<application
android:allowBackup="true"
android:icon="@drawable/icon"
android:label="@string/app_name_test"
android:supportsRtl="true"
android:theme="@style/Theme.AppCompat">
...
</application>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-08 15:30:02
Miałem taką awarię na urządzeniach Samsung , mimo że aktywność używała motywu .AppCompat . Główną przyczyną było dziwne optymalizacje po stronie Samsunga:
- if one activity of your app has theme not inherited from Theme.AppCompat
- and it has also `android:launchMode="singleTask"`
- then all the activities that are launched from it will share the same Theme
Moim rozwiązaniem było usunięcie android:launchMode="singleTask"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-29 00:08:58
Dla mnie rozwiązaniem było użycie ContextThemeWrapper:
private FloatingActionButton getFAB() {
Context context = new android.support.v7.view.ContextThemeWrapper(getContext(), R.style.AppTheme);
FloatingActionButton fab = new FloatingActionButton(context);
return fab;}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:10:42
Po Prostu Zrób
new AlertDialog.Builder(this)
Zamiast
new AlertDialog.Builder(getApplicationContext())
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-27 10:37:06
Masz wiele rozwiązań tego błędu.
Należy użyć Activity lub FragmentActivity zamiast ActionbarActivity lub AppCompatActivity
Jeśli chcesz użyć ActionbarActivity lub AppCompatActivity, powinieneś zmienić style .xml temat.Holo.xxxx to Theme.AppCompat.Light (w razie potrzeby dodaj do DarkActionbar)
Jeśli nie potrzebujesz Zaawansowanego atrybuty dotyczące paska akcji lub AppCompat nie musisz używać Actionbarlub AppCompat.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-22 00:06:33
W manifeście Androida po prostu Zmień motyw aktywności na AppTheme jako następujący fragment kodu
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme">
</activity>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-09 06:28:05
To jest, gdy chcesz AlertDialog we fragmencie
AlertDialog.Builder adb = new AlertDialog.Builder(getActivity());
adb.setTitle("My alert Dialogue \n");
adb.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//some code
} });
adb.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
} });
adb.show();
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-20 06:21:30
Też miałem ten problem i co zrobiłem, aby go naprawić, a nadal używam tematu Holo, to wykonać następujące kroki: {]}
Najpierw zastąpiłem ten import:
import android.support.v7.app.AppCompatActivity;
Z tym:
import android.app.Activity;
Potem zmieniłem rozszerzenie z:
public class MyClass extends AppCompatActivity {//...
Do tego:
public class MyClass extends Activity {//...
A także musiał zmienić ten import:
import android.support.v7.app.AlertDialog;
Do tego importu:
import android.app.AlertDialog;
A następnie możesz użyć tagu motywu w manifeście na poziomie aktywności:
android:theme="@android:style/Theme.Holo.Dialog" />
I na koniec (chyba że masz inne klasy w Twoim projekcie, które muszą używać appCompat v7) możesz wyczyścić i przebudować swój projekt lub usunąć ten wpis w pliku gradle build na poziomie aplikacji:
compile 'com.android.support:appcompat-v7:23.2.1'
Jeśli masz inne klasy w swoim projekcie, które muszą używać appCompat v7, po prostu wyczyść i Przebuduj projekt.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-11 22:37:19
Doszedłeś do tego, ponieważ chcesz zastosować projekt materiału w swoim stylu motywu w poprzednich wersjach sdk do 21. ActionBarActivity
wymaga AppTheme
więc jeśli chcesz również zapobiec własnej personalizacji o AppTheme, tylko musisz zmienić swoje style.xml (poprzedni do sdk 21) więc w ten sposób, może dziedziczyć dla motywu Compat aplikacji.
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
Do tego:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-27 10:11:16
Zmień rodzica stylu motywu na
parent="Theme.AppCompat"
To mi pomogło ...Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-09 16:50:41
Ten u mnie zadziałał:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/Theme.AppCompat.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-18 06:55:34
Twoja aktywność rozszerza ActionBarActivity , która wymaga AppCompat.temat do zastosowania. Zmień z ActionBarActivity na Activity lub FragmentActivity , to rozwiąże problem.
Jeśli używasz no Action bar then:
android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-20 20:03:56
Szybkie rozwiązanie.
Zmień rodzica motywu podstawowego w stylach.xml
Zastąp z
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
Do
<style name="AppTheme" parent="Theme.AppCompat">
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-22 12:57:53
W moich doświadczeniach problemem był kontekst, w którym pokazywałem moje okno dialogowe. Wewnątrz przycisku KLIKNIJ I instantiate a AlertDialog w ten sposób:
builder = new AlertDialog.Builder(getApplicationContext());
Ale kontekst nie był poprawny i spowodował błąd. Zmieniłem go używając kontekstu aplikacji w ten sposób:
W sekcji declare:
Context mContext;
W metodzie onkologicznej
mContext = this;
I na koniec w kodzie gdzie potrzebuję AlertDialog:
start_stop = (Button) findViewById(R.id.start_stop);
start_stop.setOnClickListener( new View.OnClickListener()
{
@Override
public void onClick(View v)
{
if (!is_running)
{
builder = new AlertDialog.Builder(mContext);
builder.setMessage("MYTEXT")
.setCancelable(false)
.setPositiveButton("SI", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Task_Started = false;
startTask();
}
})
.setNegativeButton("NO",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
}
}
}
To jest rozwiązanie dla mnie.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-29 12:12:31
To rozwiązanie zadziałało.
Biblioteka projektowania zależy od wsparcia bibliotek v4 i AppCompat, więc nie używaj innej wersji dla appcompat i biblioteki projektowania w gradle.
Użyj
compile 'com.android.support:appcompat-v7:23.0.0'
compile 'com.android.support:design:23.0.0'
Zamiast
compile 'com.android.support:appcompat-v7:23.0.0'
compile 'com.android.support:design:23.1.0'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-03 11:58:14
Miałem ten sam problem. Bo tworzyłem własną szufladę nawigacyjną. Ale zapomniałem wspomnieć o temacie w moim manifeście jak ten
Android: theme= " @style / Theme.AppCompat.NoActionBar "
Jak tylko dodałem powyższy temat do mojego manifestu, rozwiązałem problem.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-18 07:34:28
Dla mnie żadna z powyższych odpowiedzi nie zadziałała nawet po tym, jak miałem Theme.AppCompat
jako motyw podstawowy dla aplikacji. Używałem com.android.support:design:24.1.0
, więc zmieniłem wersję na 24.1.1
. Po synchronizacji gradle ponownie działa i wyjątek zniknął. Wydaje mi się, że problem dotyczył starszych wersji bibliotek wspomagających projektowanie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-24 13:26:30
W moim przypadku nadmuchiwałem widok z ApplicationContext. Gdy używasz ApplicationContext, motyw/styl nie jest stosowany, więc mimo, że był motyw.Appcompat w moim stylu, nie został zastosowany i spowodował ten wyjątek. Więcej szczegółów: Temat / styl nie jest stosowany, gdy inflater jest używany z ApplicationContext
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-22 16:48:49
Moja aktywność z SectionsPagerAdapter i ViewPager & Fragment
public class MyActivity extends AppCompatActivity implements ActionBar.TabListener
...
...
@Override
public void onPostResume(){
super.onPostResume();
try {
getSupportActionBar().setDisplayShowTitleEnabled(false);
}catch (NullPointerException ignored){
}
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-21 09:56:47