在 android 个模拟器上移动了 activity 个元素
Moved activity elements on android emulator
我有初级求和程序。它应该接受两个 int 数字,并在单击“+”按钮后,在 TextView 上产生结果。
当我尝试单击求和按钮时,按钮和 TextView 元素会更改位置。
我没有添加任何更改位置的规则。
public void onclick (View v){
EditText el1 = (EditText)findViewById(R.id.num1);
EditText el2 = (EditText)findViewById(R.id.num2);
TextView restext = (TextView)findViewById(R.id.result);
int num1 = Integer.parseInt(el1.getText().toString());
int num2 = Integer.parseInt(el2.getText().toString());
int resSum = num1 + num2;
restext.setText(Integer.toString(resSum));
}
before click on button
after click on button
还附加了 xml 文件的内容。也许它有一些缺陷。
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.admin.test1.MainActivity">
<EditText
android:id="@+id/num1"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_marginBottom="131dp"
android:layout_marginTop="39dp"
android:ems="10"
android:hint="первое число"
android:inputType="number"
app:layout_constraintBottom_toTopOf="@+id/result"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="spread" />
<EditText
android:id="@+id/num2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="48dp"
android:ems="10"
android:hint="второе число"
android:inputType="number"
app:layout_constraintStart_toStartOf="@+id/num1"
app:layout_constraintTop_toBottomOf="@+id/num1" />
<TextView
android:id="@+id/result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="59dp"
android:layout_marginEnd="25dp"
android:text="результат"
android:textIsSelectable="false"
android:textSize="30sp"
app:layout_constraintBottom_toTopOf="@+id/sum"
app:layout_constraintEnd_toEndOf="@+id/num2"
app:layout_constraintTop_toBottomOf="@+id/num1" />
<Button
android:id="@+id/sum"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="151dp"
android:layout_marginStart="28dp"
android:onClick="onclick"
android:text="+"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="@+id/result"
app:layout_constraintTop_toBottomOf="@+id/result" />
这是因为您的 textView "result" 有 "wrap_content" 宽度,而按钮有 "app:layout_constraintStart_toStartOf="@+id/result""。因此,首先,您在 TextView 中显示提示文本,但是当更改文本时,宽度变小并移动按钮以与 textView 的开头对齐。
如果你想让按钮居中,你可以使用:
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
我有初级求和程序。它应该接受两个 int 数字,并在单击“+”按钮后,在 TextView 上产生结果。 当我尝试单击求和按钮时,按钮和 TextView 元素会更改位置。 我没有添加任何更改位置的规则。
public void onclick (View v){
EditText el1 = (EditText)findViewById(R.id.num1);
EditText el2 = (EditText)findViewById(R.id.num2);
TextView restext = (TextView)findViewById(R.id.result);
int num1 = Integer.parseInt(el1.getText().toString());
int num2 = Integer.parseInt(el2.getText().toString());
int resSum = num1 + num2;
restext.setText(Integer.toString(resSum));
}
before click on button
after click on button
还附加了 xml 文件的内容。也许它有一些缺陷。
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.admin.test1.MainActivity">
<EditText
android:id="@+id/num1"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_marginBottom="131dp"
android:layout_marginTop="39dp"
android:ems="10"
android:hint="первое число"
android:inputType="number"
app:layout_constraintBottom_toTopOf="@+id/result"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="spread" />
<EditText
android:id="@+id/num2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="48dp"
android:ems="10"
android:hint="второе число"
android:inputType="number"
app:layout_constraintStart_toStartOf="@+id/num1"
app:layout_constraintTop_toBottomOf="@+id/num1" />
<TextView
android:id="@+id/result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="59dp"
android:layout_marginEnd="25dp"
android:text="результат"
android:textIsSelectable="false"
android:textSize="30sp"
app:layout_constraintBottom_toTopOf="@+id/sum"
app:layout_constraintEnd_toEndOf="@+id/num2"
app:layout_constraintTop_toBottomOf="@+id/num1" />
<Button
android:id="@+id/sum"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="151dp"
android:layout_marginStart="28dp"
android:onClick="onclick"
android:text="+"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="@+id/result"
app:layout_constraintTop_toBottomOf="@+id/result" />
这是因为您的 textView "result" 有 "wrap_content" 宽度,而按钮有 "app:layout_constraintStart_toStartOf="@+id/result""。因此,首先,您在 TextView 中显示提示文本,但是当更改文本时,宽度变小并移动按钮以与 textView 的开头对齐。
如果你想让按钮居中,你可以使用:
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"