AndroidStudio:单击时显示输入字段

AndroidStudio:单击时显示输入字段,android,android-studio,Android,Android Studio,我正在构建一个android应用程序,用户可以在其中创建、查看、删除和更新他的烹饪食谱 如果用户正在创建配方,我希望他能够添加步骤,如:步骤1:,步骤2:,等等。 因此,如果用户需要另一个步骤,他只需点击“添加步骤”按钮,上一个步骤的下方就会出现一个输入字段 我试着找这个,但什么也没找到。有人能帮我找到正确的方向吗?假设您正在使用constraintlayout EditText step1 = findViewById(R.id.step1); EditText step2 = new

我正在构建一个android应用程序,用户可以在其中创建、查看、删除和更新他的烹饪食谱

如果用户正在创建配方,我希望他能够添加步骤,如:步骤1:,步骤2:,等等。 因此,如果用户需要另一个步骤,他只需点击“添加步骤”按钮,上一个步骤的下方就会出现一个输入字段


我试着找这个,但什么也没找到。有人能帮我找到正确的方向吗?

假设您正在使用constraintlayout

EditText step1 = findViewById(R.id.step1);
    EditText step2 = new EditText(this);
    step2.setId(R.id.step2);
    step2.setLayoutParams(new ConstraintLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));

    ConstraintSet constraintSet = new ConstraintSet();
    ConstraintLayout constraintLayout = findViewById(R.id.parent);
    constraintLayout.addView(step2);
    constraintSet.clone(constraintLayout);




    constraintSet.connect(step2.getId(),ConstraintSet.START,ConstraintSet.PARENT_ID,ConstraintSet.START,0);
    constraintSet.connect(step2.getId(),ConstraintSet.END,ConstraintSet.PARENT_ID,ConstraintSet.END,0);
    constraintSet.connect(step2.getId(),ConstraintSet.TOP,step1.getId(),ConstraintSet.BOTTOM,0);
    constraintSet.constrainWidth(R.id.step2,ConstraintSet.MATCH_CONSTRAINT);
    constraintSet.constrainHeight(R.id.step2,ConstraintSet.MATCH_CONSTRAINT);
    constraintSet.applyTo((ConstraintLayout)findViewById(R.id.parent));

使用下面的代码,我可以在单击按钮时创建新的EditText字段

private int hint = 0;

public void addStep(View view) {
    //Get the linearLayout where the EditText fields will appear.
    LinearLayout container = findViewById(R.id.linearLayout);

    //Increment id by 1.
    hint++;

    //Create a new EditText field.
    EditText step = new EditText(this); //Creating new TextView

    //Add attributes to EditText
    step.setId(hint);
    step.setText("step");
    step.setMaxLines(1);
    step.setWidth(160);

    //Finally Display the EditText field in the LinearLayout
    container.addView(step);
}

当我按下按钮时,我的应用程序似乎崩溃了。