CalendarView komplett weiß

  • Antworten:16
Luca T.
  • Forum-Beiträge: 62

23.07.2014, 17:12:37 via Website

Hallo Leute,

ich versuche gerade in einnem Alert Dialog eine CalendarVIew zu implementieren.
An sich klappt das ganze auch, nur das Problem ist, dass der Kalendar komplett weiß ist, also weder die Trennstiche sichtbar sind, noch die Zahlen (Bzw. die Zahlen sieht man ganz schwach) nur die blaue Auswahlzeile ist nomal da
Außerdem glaube ich, dass der Kalendar ein bisschen nach rechts verschoben ist, kann ich aber nicht so genau sagen. :?

Kennt jemand von euch das Problem?
(Es kommt keine Fehlermeldung)

Hier der XML Code für das Layout:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/myLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<CalendarView
android:id="@+id/calendarID"
android:layout_width="match_parent"
android:layout_weight="1"
android:layout_height="300dip"
android:tag="my tag" />
</LinearLayout>

Und hier der Activity Code

public void onClickZumKalendar(final View view){

    LayoutInflater inflater = (LayoutInflater)getApplicationContext().getSystemService
              (Context.LAYOUT_INFLATER_SERVICE);
    LinearLayout ll= (LinearLayout)inflater.inflate(R.layout.calendar_dialog, null, false);

    new AlertDialog.Builder(this)
    .setTitle("Titel")
    .setMessage("W&auml;hle Tag?")
    .setView(ll)
    .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
            //do nothing...yet
        }
    }).setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
            // Do nothing.
        }
    }
    ).show();



}

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

23.07.2014, 17:17:36 via Website

Ist das nicht klar?
Du erstellst ein LinearLayout:

 LinearLayout ll= (LinearLayout)inflater.inflate(R.layout.calendar_dialog, null, false);

Wo wird dieses gesetzt, dass es nun aktiv ist.
Theoretisch müsste ein setContentView reichen.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Luca T.
  • Forum-Beiträge: 62

23.07.2014, 17:19:51 via Website

Ich versuchs mal, aber eigentlich wird der Kalendar ja dargestellt, nur eben irgendwie, falsch...
(Ist ja in einem Custom Alert Dialog )

Antworten
Luca T.
  • Forum-Beiträge: 62

23.07.2014, 17:21:58 via Website

Nope, bei setContentView wirft er eine IllegalStateException

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

23.07.2014, 17:24:09 via Website

Warum benötigst du überhaupt einen Layoutinflater?
mach doch einfach:

setContentView(R.layout.calendar_dialog);

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Luca T.
  • Forum-Beiträge: 62

23.07.2014, 17:29:21 via Website

Weil es in einem Custom Alert Dialog ist, und ich beim Builder.setView(ll) das Layout brauche.

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

23.07.2014, 17:31:08 via Website

Dann sit es doch sinnvoller, du erstellst die CalendarView auch per Code , dann musst du diese nicht aus dem layout laden

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Luca T.
  • Forum-Beiträge: 62

23.07.2014, 17:34:39 via Website

Wie genau meinst du das jetzt?

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

23.07.2014, 17:39:43 via Website

Ich meine das so ungefähr:
Achtung pseudocode, bitte richtige Syntax benutzen:

CalendarView cv = new CalendarView();
//Vlt noch init des Kalenders etc.

new AlertDialog.Builder(this)
    .setTitle("Titel")
    .setMessage("W&amp;auml;hle Tag?")
    .setView(cv)
//und so weiter

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Luca T.
  • Forum-Beiträge: 62

23.07.2014, 17:54:55 via Website

Mhhh,das scheint das Problem zwar halbwegs zu lösen, aber es treten jetzt drei andere Probleme auf:

  1. Der Dialog braucht ca. 20 sek zum öffnen
  2. Wenn er offen ist zeigt er nur Juli 2014 und dadrunter die S M D M D F S an (also der Kalendar an sich fehlt, allerdings habe ich bisher noch kein Layout definiert, habe das noch nie im Code gemacht
  3. Der Dialog braucht nachdem er offen ist wieder ca. 20 sek um auf EIngaben ("ok" oder "cancel" ) reagieren zu können wieder ca. 20 sek

— geändert am 23.07.2014, 18:04:26

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

23.07.2014, 18:11:43 via Website

Also mit Irgendwas scheint das Gerät überfordert zu sein.
Gibt LogCat irgendetwas aussergewöhnliches aus?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Luca T.
  • Forum-Beiträge: 62

23.07.2014, 18:17:16 via Website

Nope, hier mal ein kleiner Auszug

07-23 18:15:28.164: D/dalvikvm(5383): GC_FOR_ALLOC freed 1497K, 53% free 13871K/29404K, paused 37ms, total 37ms
07-23 18:15:28.554: D/dalvikvm(5383): GC_FOR_ALLOC freed 1495K, 53% free 13872K/29404K, paused 31ms, total 31ms
07-23 18:15:28.929: D/dalvikvm(5383): GC_FOR_ALLOC freed 1496K, 53% free 13872K/29404K, paused 42ms, total 42ms
07-23 18:15:29.309: D/dalvikvm(5383): GC_FOR_ALLOC freed 1497K, 53% free 13872K/29404K, paused 38ms, total 38ms
07-23 18:15:29.624: D/dalvikvm(5383): GC_FOR_ALLOC freed 1496K, 53% free 13872K/29404K, paused 37ms, total 37ms
07-23 18:15:29.929: D/dalvikvm(5383): GC_FOR_ALLOC freed 1496K, 53% free 13872K/29404K, paused 38ms, total 38ms
07-23 18:15:30.234: D/dalvikvm(5383): GC_FOR_ALLOC freed 1496K, 53% free 13872K/29404K, paused 38ms, total 38ms
07-23 18:15:30.544: D/dalvikvm(5383): GC_FOR_ALLOC freed 1496K, 53% free 13872K/29404K, paused 37ms, total 38ms
07-23 18:15:30.899: D/dalvikvm(5383): GC_FOR_ALLOC freed 1496K, 53% free 13873K/29404K, paused 30ms, total 30ms
07-23 18:15:31.204: D/dalvikvm(5383): GC_FOR_ALLOC freed 1497K, 53% free 13872K/29404K, paused 37ms, total 37ms
07-23 18:15:31.534: D/dalvikvm(5383): GC_FOR_ALLOC freed 1494K, 53% free 13874K/29404K, paused 37ms, total 37ms
07-23 18:15:31.869: D/dalvikvm(5383): GC_FOR_ALLOC freed 1497K, 53% free 13873K/29404K, paused 36ms, total 36ms
07-23 18:15:32.179: D/dalvikvm(5383): GC_FOR_ALLOC freed 1497K, 53% free 13873K/29404K, paused 38ms, total 38ms
07-23 18:15:32.499: D/dalvikvm(5383): GC_FOR_ALLOC freed 1497K, 53% free 13873K/29404K, paused 36ms, total 36ms
07-23 18:15:32.814: D/dalvikvm(5383): GC_FOR_ALLOC freed 1497K, 53% free 13873K/29404K, paused 35ms, total 36ms
07-23 18:15:33.124: D/dalvikvm(5383): GC_FOR_ALLOC freed 1497K, 53% free 13873K/29404K, paused 36ms, total 36ms
07-23 18:15:33.489: D/dalvikvm(5383): GC_FOR_ALLOC freed 1496K, 53% free 13874K/29404K, paused 31ms, total 31ms
07-23 18:15:33.784: D/dalvikvm(5383): GC_FOR_ALLOC freed 1497K, 53% free 13873K/29404K, paused 32ms, total 32ms

Das Läuft da ne ewigkeit runter^^

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

23.07.2014, 18:19:36 via Website

Sieht aus als Hätte der GC (GarbageCollector) viel zu tun.
aber was man jetzt dagegen machen kann, weiss ich nicht.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Luca T.
  • Forum-Beiträge: 62

23.07.2014, 18:21:44 via Website

Naja, das komisch ist ja, das es sauber funktioniert, wenn ich es über XML Layout mache, dann ist der Kalendar halt nur so komisch weiß

Vlt. muss man um den CalendarView auch noch im Code ein Layout legen?

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

23.07.2014, 18:35:35 via Website

Normalerweise nicht.
Was meinst udenn mit Komisch weiss?
Ein Screenshot wäre bei sowas hilfreich

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Luca T.
  • Forum-Beiträge: 62

23.07.2014, 18:54:25 via Website

Wie mache ich denn auf einem Handy ein Screenshot (Galaxy S3 )

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

24.07.2014, 06:39:21 via Website

Wenn du gegoogled hättest, dann hättest du schon einen Screenshot.
PS: Power + Home

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten