2017-06-08 135 views
0

我正在開發一個簡單的遊戲。我正在使用SQLite保存數據,我試圖在AlertDialog彈出窗口中顯示數據。看起來文本被放置在應該放置的位置,但沒有顯示。文本應該是空白的。 這些方法我用,使AlertDialog和文本添加到它:爲什麼AlertDialog顯示空白信息?

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(); 
} 

被填充數據庫之前,和之前的文本被添加到警告對話框

enter image description here

後文字它添加

enter image description here

正如你所看到的,阿拉爾當我添加文本時,tDialog會變得更大。如果您在我的代碼中看到任何錯誤,請告訴我,或者您想查看更多內容。

+0

你有你的應用程序的其他警報對話框?如果那麼它工作正常?有可能您的警報對話框消息的文本顏色可能是白色的,並導致它看不到。 –

+1

請發佈您的style.xml –

+0

我沒有任何其他警報對話框在我的應用程序。 –

回答

1

試試下面的答案將在所有版本中運行: -

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

呵呵,現在它的工作,但現在有一個標題空白。 –

+0

試試'MainActivity.this'(意思是Activity.this),而不是'this'。因爲我已經看到,由於上下文值通過不同的方法獲得,所以有時結果已經改變。 –