Android 从警报对话框提取值以动态更新生成的编辑文本

Android 从警报对话框提取值以动态更新生成的编辑文本,android,android-layout,android-alertdialog,Android,Android Layout,Android Alertdialog,我已经动态创建了EditText视图。我还创建了一个带有编辑文本视图的警报对话框。现在,我应该将在警报对话框中键入的文本添加到动态生成的EditText。请帮帮我 @Override public void onClick(View v) { EditText input = new EditText(this); Context Context = this; AlertDialog Alert=new AlertDialog.Builder(Context).

我已经动态创建了
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);

    }    

}

}

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

您可以在对话框之前创建第二个输入,并将其定义为
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 */

您的
编辑文本
在您的
对话框
后声明,这是错误的。您应该这样做,即
编辑文本
应该在
对话框
启动之前声明,并且当用户单击“是”按钮(即肯定响应)时,您应该添加以下代码:

editTextView.setText(input.getText());

这应该可以解决问题。

您能详细解释一下您的程序在做什么吗?通过对程序的引用,告诉我们您遇到了什么问题,然后我们就会看到。我刚刚创建了管理员和用户页面。在管理员注册页面中,我动态创建了edittext。我还创建了一个警报对话框,以确认管理员是否准备好添加字段。在alertdialog的编辑文本中输入的文本,在动态生成的编辑文本中应显示相同的文本。我已在线性布局下创建了另一个edittext的引用。@大卫