標籤:
/** * (擷取輸入) */ 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; }
大致如下:
Android 動態產生對話方塊和EditText