如何使用按钮添加或删除 EditText

时间:2021-07-26 17:07:21

标签: java android

我是编程新手,尤其是在 Java 和 Android Studio 中。

我想创建一个活动,您可以在其中添加或删除带有按钮的 EditText。输入所有数据后,我想通过按下计算按钮来计算一些东西并将值传递给下一个活动。我附上了它应该是什么样子的 picture。感谢任何帮助,谢谢。

3 个答案:

答案 0 :(得分:2)

您可以隐藏和显示 setVisibility 中的 EditText

试试下面的代码:

Button btn=findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        editText.setVisibility(View.GONE);
    }
});

如果您想将数据从一个活动发送到另一个活动,您可以通过 Intent 发送。

Intent i=new Intent(this,SomeActivity.class);
i.putExtra("key","somevalue");
startActivity(i);

您可以在下次活动中通过getIntent()获得价值。

String key=getIntent().getStringExtra("key");

答案 1 :(得分:0)

我建议先看看如何制作计算器。您需要定义允许您进行计算的运算符 (+,-,/,*)。我可以为您提供一篇名为 Simple Calculator App in Android Studio for Beginners 的非常好的文章,向您展示如何实现。

答案 2 :(得分:0)

添加视图使用 addView() 方法,删除视图使用 removeView()。例如我在这里使用 ConstraintLayout ,您也可以尝试其他布局。

activity_main.xml

    <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="20dp"
    android:gravity="center_horizontal">

    <Button
        android:id="@+id/add"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="4dp"
        android:layout_marginLeft="4dp"
        android:layout_marginBottom="18dp"
        android:text="add"
        app:layout_constraintBottom_toTopOf="@+id/remove"
        app:layout_constraintStart_toStartOf="@+id/remove" />

    <Button
        android:id="@+id/remove"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="144dp"
        android:text="remove"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

MainActivity-

 public class MainActivity extends AppCompatActivity {
    private Button add, remove;
    private EditText editText;
    private String editTextName;
    private ConstraintLayout constraintLayout;
    private TextView textView;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        add = (Button) findViewById(R.id.add);
        remove = (Button) findViewById(R.id.remove);

        AlertDialog.Builder alertdialog = new AlertDialog.Builder(this);

        add.setOnClickListener(new View.OnClickListener() {
            @RequiresApi(api = Build.VERSION_CODES.O)
            @Override
            public void onClick(View v) {

                final EditText edittext = new EditText(getApplicationContext());
                alertdialog.setMessage("Input a Name");
                alertdialog.setTitle("Add New Item");
                alertdialog.setView(edittext);

                alertdialog.setPositiveButton("Add", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {

                        editTextName = edittext.getText().toString();
                        constraintLayout = (ConstraintLayout) findViewById(R.id.main);
                        textView = new TextView(getApplicationContext());
                        textView.setText(editTextName);
                        constraintLayout.addView(textView);


                        editText = new EditText(getApplicationContext());
                        constraintLayout.addView(editText);

                    }
                });

                alertdialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
                        // TODO
                    }
                });

                alertdialog.show();
            }
        });
        remove.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (editTextName != null) {
                    constraintLayout.removeView(editText);
                    constraintLayout.removeView(textView);

                }
            }
        });
    }
}

如果您想要运行时布局设计,请关注layoutparams