2012-05-24 70 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

相关问题