Android 动态生成对话框和EditText

/**
     * (获取输入) 
     */
    private void showInputDialog() {
       
       ScrollView scrollview = getInitView() ;
       final LinearLayout layout = (LinearLayout) 
               scrollview.findViewById(30) ;

       new AlertDialog.Builder(this) 
           .setTitle("请输入") 
           .setIcon(android.R.drawable.ic_dialog_info)
           .setView(scrollview)
           .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                     @Override 
                     public void onClick(DialogInterface dialog, int which) {   
                         setNewModule(layout) ;
                     }
                }) 
           .setNegativeButton("取消", new DialogInterface.OnClickListener() {              
                   @Override 
                   public void onClick(DialogInterface dialog, int which) { 
                       // do nothing
                   } 
               }) 
           .show(); 
       
    }
    
    /**
     * (动态设置view) 
     */
    private ScrollView getInitView() {
      //新建一个布局
        LinearLayout layout = new LinearLayout(this);
        
        LinearLayout.LayoutParams layoutParams =   
                new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
                ViewGroup.LayoutParams.MATCH_PARENT);
        
        //设置为纵向布局
        layout.setOrientation(LinearLayout.VERTICAL) ;
        //设置layout大小
        layout.setLayoutParams(layoutParams) ;
        //设置layout Id
        layout.setId(30) ;
        
        //新建编辑框
        EditText titleEditText = new EditText(this); 
        titleEditText.setId(20) ;
        titleEditText.setHint("请输入title:");
     //要添加更多对话框可以照着例子添加
        
        //把编辑框加入到layout中
        layout.addView(titleEditText) ;
        
        //给layout包一层可滚动的scrollview
        ScrollView scrollview = new ScrollView(this) ;
        scrollview.setLayoutParams(layoutParams) ;
        scrollview.addView(layout) ;
        
        return scrollview ;
    }
    
    /**
     * (设置module的值) 
     * @param layout
     */
    private void setNewModule(LinearLayout layout) {
        
        String title = ((EditText)layout.findViewById(20))
                .getText().toString() ;        
        //此处省略掉一些代码
        //设置module
        Module module = new Module() ;
        module.title = title;

    } 

效果图大致如下:

posted @ 2015-08-01 23:36  jasonkent27  阅读(690)  评论(0编辑  收藏  举报