我是编程新手,尤其是在 Java 和 Android Studio 中。
我想创建一个活动,您可以在其中添加或删除带有按钮的 EditText。输入所有数据后,我想通过按下计算按钮来计算一些东西并将值传递给下一个活动。我附上了它应该是什么样子的 picture。感谢任何帮助,谢谢。
答案 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
。