从警报对话框中提取值以动态更新生成的EditText

时间:2013-07-16 12:07:12

标签: android android-layout android-alertdialog

我动态创建了EditText个视图。我还创建了一个dialog视图的提醒EditText。现在我应该在警告对话框中输入文本到动态生成的EditText。请帮帮我..

@Override
public void onClick(View v) {



     EditText input = new EditText(this);
    Context Context = this;
    AlertDialog Alert=new AlertDialog.Builder(Context).setTitle("Add Field").setMessage("Proceed").setView(input).setPositiveButton("Yes",new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub

            Toast.makeText(getApplicationContext(), "You clicked on Yes", Toast.LENGTH_LONG).show();

        }
    }).setNegativeButton("No", new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub

            dialog.cancel();
            Toast.makeText(getApplicationContext(), "You clicked on No", Toast.LENGTH_LONG).show();


        }


    }).show();


        LinearLayout linearLayout = (LinearLayout)findViewById(R.id.editTextGroupLayout);
         EditText editTextView = new EditText(this);
        editTextView.setGravity(Gravity.CENTER);

        LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT,
            LayoutParams.WRAP_CONTENT);

        editTextView.setLayoutParams(params);
        editTextView.setHint("Enter Field ");
        linearLayout.addView(editTextView);


 if(v.getId()==R.id.button_selectoptionsback){




            Intent a=new Intent(this,Admin.class);
            this.startActivity(a);

    }    

}

}

2 个答案:

答案 0 :(得分:0)

问题似乎是您的对话框没有对第二个文本输入的引用。

您可以在对话框之前创建第二个输入并将其定义为final,在这种情况下,您可以在类中使用它。在您的肯定onClick中,您可以调用:

editTextView.setText(input.getText());

总的来说,它看起来像这样:

final EditText input = new EditText(this);
final EditText editTextView = new EditText(this);
AlertDialog /* codez... */ .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        editTextView.setText(input.getText());

        Toast.makeText(/* ... */);
    }
}) /* more code */

答案 1 :(得分:0)

EditTextDialog错误之后宣布。你应该这样做EditText应该在Dialog开始之前声明,当用户点击“是”按钮,即PositiveResponse时,你应该添加以下代码:

editTextView.setText(input.getText());

这应该可以解决问题。