我正在 AndroidStudio 上构建一个简单的应用程序,输入您的姓名,点击“下一步”按钮,它会转到下一页,其中按钮显示“不要那样叫我”和“谢谢”。我的问题是,IDE 未显示任何错误,但按钮在模拟器中重叠。这是布局或填充问题吗?还是两者都不是?
activity_main.xml
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/enter_your_name"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.047"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.022" />
<EditText
android:id="@+id/editText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:minHeight="48dp"
android:text=""
tools:ignore="LabelFor,MissingConstraints,SpeakableTextPresentCheck"
tools:layout_editor_absoluteX="15dp"
tools:layout_editor_absoluteY="39dp"
android:importantForAutofill="no" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/next"
tools:layout_editor_absoluteX="17dp"
tools:layout_editor_absoluteY="85dp"
tools:ignore="MissingConstraints" />
MainActivity.java
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// loads user name from SharedPreferences
sharedPreferences = getPreferences(MODE_PRIVATE);
String userName = sharedPreferences.getString("userName", null);
// Set the user name in the EditText
editText = findViewById(id.editText);
editText.setText(userName);
}
@Override
protected void onPause() {
super.onPause();
// saving the current values
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("userName", editText.getText().toString());
editor.apply();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// Checks result code from the NameActivity
if (requestCode == REQUEST_NAME && resultCode == RESULT_OK) {
int result = data.getIntExtra("result", 0);
if (result == 0) {
// user wants to change their name
editText.setText("");
} else if (result == 1) {
// user closes app
finish();
activity_name.xml
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/welcome"
tools:layout_editor_absoluteX="16dp"
tools:layout_editor_absoluteY="16dp"
tools:ignore="MissingConstraints" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/dont_call_mee_that"
tools:layout_editor_absoluteX="17dp"
tools:layout_editor_absoluteY="41dp"
tools:ignore="MissingConstraints" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/thank_you"
tools:layout_editor_absoluteX="228dp"
tools:layout_editor_absoluteY="41dp"
tools:ignore="MissingConstraints" />
NameActivity.java
@SuppressLint("SetTextI18n")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_name);
// gets the user's name passed from the previous activity
Intent intent = getIntent();
String userName = intent.getStringExtra("userName");
// updates the TextView to welcome the user
TextView textView = findViewById(R.id.textView);
textView.setText("Welcome " + userName + "!");