2017-06-08 9 views
0

Ich entwickle ein einfaches Spiel. Ich verwende SQLite, um Daten zu speichern, und ich versuche, die Daten in einem AlertDialog-Popup anzuzeigen. Es scheint, dass der Text dort platziert wird, wo er sein sollte, aber er wird nicht angezeigt. Es gibt eine leere Stelle, wo der Text sein sollte. Dies sind die Methoden, die ich den Alertdialog machen verwenden und fügen Sie Text hinzu:Warum zeigt AlertDialog eine leere Nachricht an?

public void viewAll() { 

    allGames.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Cursor res = myDb.getAllData(); 
      if (res.getCount() == 0) { 
       //show message 
       showMessage("Error", "No data found"); 
       return; 
      } 
      StringBuffer buffer = new StringBuffer(); 
      while (res.moveToNext()) { 
       buffer.append("Name : " + res.getString(0)+ "\n"); 
       buffer.append("Tries : " + res.getString(1)+ "\n"); 
       buffer.append("Difficulty : " + res.getString(2)+ "\n\n"); 
      } 
      showMessage("Data", buffer.toString()); 
     } 
    }); 
} 

public void showMessage(String title, String Message) { 
    AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    builder.setCancelable(true); 
    builder.setTitle(title); 
    builder.setMessage(Message); 
    builder.show(); 
} 

Bevor die Datenbank gefüllt wurde, und bevor der Text auf den Alert-Dialog wurde hinzugefügt

enter image description here

Nach Text wurde zugegeben

enter image description here

Wie Sie sehen können, die Aler tDialog wird größer, wenn ich Text hinzufüge. Bitte lassen Sie mich wissen, wenn Sie einen Fehler in meinem Code sehen oder möchten Sie mehr davon sehen.

+0

Haben Sie in Ihrer App anderen Alarm Dialoge haben? Wenn es dann richtig funktioniert? Es besteht die Möglichkeit, dass die Textfarbe für die Textfarbe eines Alarmdialogs weiß ist und dadurch nicht angezeigt wird. –

+1

posten Sie bitte Ihre style.xml –

+0

Ich habe keine anderen Alarmdialoge in meiner App. –

Antwort

1

Versuchen unten Antwort, die in allen Versionen funktionieren: -

AlertDialog.Builder builder; 
if(Build.VERSION.SDK_INT >= 21) 
    builder = new AlertDialog.Builder(this, android.R.style.Theme_Material_Light_Dialog_Alert); 
else 
    builder = new AlertDialog.Builder(this); 
builder.setCancelable(true); 
builder.setTitle(title); 
builder.setMessage(Message); 
builder.create().show(); 
+0

Huh, jetzt funktioniert es, aber jetzt gibt es eine leere Stelle über dem Titel. –

+0

Versuchen Sie 'MainActivity.this' (bedeutet Activity.this) anstelle von' this'. Weil ich gesehen habe, dass sich das Ergebnis manchmal geändert hat, weil der Kontextwert auf andere Weise erhalten wurde. –

Verwandte Themen