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; }
效果图大致如下: