1

我已经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);

    }    

}

}

4

2 回答 2

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 */
于 2013-07-16T12:18:12.067 回答
0

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

editTextView.setText(input.getText());

这应该可以解决问题。

于 2013-07-16T12:26:10.207 回答