首页 > 解决方案 > 当我单击浮动操作按钮时,为什么我的应用程序会崩溃?

问题描述

当我单击按钮时,我的应用程序崩溃了,我不知道它为什么会这样,也不知道如何修复它。

fab.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
            mLayout.addView(createNewEditText(mEditText.getText().toString()));
        }
    });

private EditText createNewEditText(String text) {
    ConstraintLayout mConstraintLayout  = (ConstraintLayout) findViewById(R.id.planlaeg_l);
    ConstraintSet set = new ConstraintSet();
    EditText et = new EditText(this);
    mConstraintLayout.addView(et,0);
    set.clone(mConstraintLayout);
    set.connect(et.getId(), ConstraintSet.TOP, mConstraintLayout.getId(), ConstraintSet.TOP, 60);
    set.applyTo(mConstraintLayout);
    et.setText(text);
    return et;
}

标签: androidandroid-edittextandroid-constraintlayout

解决方案


我认为您遇到了类似“java.lang.IllegalStateException:指定的孩子已经有父母。您必须先在孩子的父母上调用 removeView()”的错误。

  • 步骤1:

    mConstraintLayout.addView(et,0);

  • 第2步:

    返回等;

  • 第 3 步:

    mLayout.addView(createNewEditText(mEditText.getText().toString()));

如何修复它:

  • 更改逻辑添加等视图(在方法 createNewEditText / 外部)

例子:

fab.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            createNewEditText(mEditText.getText().toString());
        }
    });

推荐阅读