2012-05-24 41 views
0

我試圖創建一個自定義對話框,其中包含主LinearLayout,其中包含2嵌套LinearLayout它裏面包含ImageView和TextView。自定義對話框中的嵌套LinerLayout沒有顯示

但問題是LinearLayout沒有顯示出來。我甚至沒有收到任何錯誤,應用程序也沒有崩潰。

謝謝。

下面是與此問題相關的代碼段:

AlertDialog.Builder builder = new AlertDialog.Builder(this); 

     ll_main = new LinearLayout(AddFreebie.this); 
     ll_main.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, 
       LayoutParams.WRAP_CONTENT)); 
     ll_main.setGravity(Gravity.CENTER); 
     ll_main.setOrientation(LinearLayout.VERTICAL); 

     ll_bpic = new LinearLayout(AddFreebie.this); 
     ll_bpic.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, 
       LayoutParams.WRAP_CONTENT)); 
     ll_bpic.setGravity(Gravity.CENTER); 
     ll_bpic.setOrientation(LinearLayout.HORIZONTAL); 
     iv_bpic = new ImageView(AddFreebie.this); 
     iv_bpic.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, 
       LayoutParams.WRAP_CONTENT)); 
     tv_bpic = new TextView(AddFreebie.this); 
     tv_bpic.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, 
       LayoutParams.WRAP_CONTENT)); 
     tv_bpic.setText("Browse phone for pictures.."); 

     ll_bpic.addView(iv_bpic); 
     ll_bpic.addView(tv_bpic); 

     ll_cpic = new LinearLayout(AddFreebie.this); 
     ll_cpic.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, 
       LayoutParams.WRAP_CONTENT)); 
     ll_cpic.setGravity(Gravity.CENTER); 
     ll_cpic.setOrientation(LinearLayout.HORIZONTAL); 
     iv_cpic = new ImageView(AddFreebie.this); 
     iv_cpic.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, 
       LayoutParams.WRAP_CONTENT)); 
     tv_cpic = new TextView(AddFreebie.this); 
     tv_cpic.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, 
       LayoutParams.WRAP_CONTENT)); 
     tv_cpic.setText("Take pictures using camera."); 
     ll_cpic.addView(iv_cpic); 
     ll_cpic.addView(tv_cpic); 

     ll_main.addView(ll_bpic); 
     ll_main.addView(ll_cpic); 

     builder.setView(ll_main); 
     builder.setCancelable(true); 
     builder.setPositiveButton("Yes", 
         new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, 
            int id) { 
           // MyActivity.this.finish(); 
          } 
         }) 
       .setNegativeButton("No", 
         new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, 
            int id) { 
           dialog.cancel(); 
          } 
         }); 
     AlertDialog alert = builder.create(); 
     alert.show(); 
+0

是否有任何理由你添加每一個通過代碼的東西,不要從XML視圖膨脹它? –

+0

@ eric.itzhak從xml中查看?我沒有得到你。你的意思是爲對話框創建一個專門的佈局,並做builder.setView(R.layout.dialog_view)這樣的事情? 雖然它也不是一回事嗎? 感謝您的回覆。 – Viking

+0

雅將是相同的,但是沒有理由讓佈局ti消失並且更容易管理。 –

回答

2

我可能是不正確的,但我不認爲一個AlertDialog是你真的想在這種情況下使用什麼。如果您閱讀AlertDialogs上的開發人員頁面,他們確實用於小型0,1,2或3個按鈕警報窗口,而且並非真正意味着擁有自己的真正自定義界面。這裏是AlertDialogs一些鏈接

http://www.helloandroid.com/tutorials/how-display-alertdialog-your-android-application

做你想要做什麼,我認爲你要麼需要使用Diaglog,或PopupWindow

鏈接創建自定義對話框: http://developer.android.com/guide/topics/ui/dialogs.html#CustomDialog

鏈接到創建自定義彈出窗口(我已經使用過這些): http://www.mobilemancer.com/2011/01/08/popup-window-in-android/

+0

其實我沒有訪問過第二個鏈接,並開始使用對話框 在我的其他項目中,我有編輯文本(這不是由LinearLayout包圍)裏面的兩個按鈕並顯示其功能正常 你可以修改幾乎所有的例子顯示在那裏,即時通訊嘗試做到這一點,但我不知道爲什麼LinearLayout沒有顯示出來 感謝您的迴應:) – Viking

+0

我必須解決與「添加列表」thingi從鏈接#2.LinearLayout仍然沒有顯示,所以我直接添加TextViews,但我仍然需要找到一種方式,以添加ImageView從兩個textViews – Viking

相關問題