java - 您必须首先使用 AlertView 在 child 的 parent 上调用 removeView()

标签 java android android-edittext android-alertdialog

我有一个警告对话框,我将使用 TextView 获取文本,但是当我第二次调用它时,应用程序因错误而崩溃:

04-15 19:37:48.433: E/AndroidRuntime(907): java.lang.IllegalStateException: 
    The specified child already has a parent. You must call removeView() on 
    the child's parent first.

我的 Java 源代码:

public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final RelativeLayout rLayout = (RelativeLayout) findViewById(R.id.relativeLayout);
        Button btn1 = (Button) findViewById(R.id.button1);
        final AlertDialog.Builder build = new AlertDialog.Builder(MainActivity.this);
        build.setTitle("Ders Adı Giriniz");
        final EditText dersAdiGir = new  EditText(MainActivity.this);
        build.setView(dersAdiGir);
        final LinearLayout layoutDers = (LinearLayout) findViewById(R.id.layoutDers);

        build.setPositiveButton("Tamam", new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {

                Editable girilenDers = dersAdiGir.getText();
                TextView tv1 = new TextView(MainActivity.this);
                tv1.setText(girilenDers);
                layoutDers.addView(tv1);
                dialog.dismiss();
                build.create();

            }
        });

        btn1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                AlertDialog alert = build.create();
                alert.show();
            }
        });




    }
}

请帮帮我,谢谢大家

最佳答案

您正在创建 AlertDialog 的新实例每个按钮点击。创建最终 AlertDialogOnClickListener之外内部类。

修复方法如下:

final AlertDialog alert = build.create();
btn1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        alert.show();
    }
});

关于java - 您必须首先使用 AlertView 在 child 的 parent 上调用 removeView(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29660994/

相关文章:

android - 有没有办法检测在 EditText 中点击的单词

android - 使用 EditText 搜索时,如果我搜索速度很快,Recyclerview 中的项目会重复

android - 无法自定义 EditText 在横向上选择 handle / anchor 的外观

java - 增强的for语句

java - spring security,你能添加细粒度的安全级别吗?

java - 布局中的 Eclipse ADT Open 声明不再默认

android - 关闭 Activity 的键盘动画

android - 使用 xml 的内部布局创建 AlertDialog

java - 检查 JTable 是否包含带标识符的列

java - 如何在 ReportNG Test 中附加屏幕截图