当我在我的应用程序中按下一个按钮时,所有editText和TextView都会移动到屏幕的左侧

时间:2017-04-15 04:30:52

标签: java android android-textinputedittext

我正在尝试在Android工作室中为一个类构建一个应用程序,我正在尝试在三星Galaxy S4上测试我的应用程序。当我按下屏幕上的按钮以保存用户输入的数据时,所有的editText和TextView都会转移到屏幕的左侧,我不知道为什么会这样做。 这是我的XML代码:

<Button
    android:text="@string/display_data"
    android:id="@+id/DisplayData"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:onClick="DisplayData"
    android:textSize="25sp"
    android:textStyle="bold"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/GoalPercent"
    android:text="@string/competition_percentage"
    android:textSize="15sp"
    android:textColor="@android:color/background_dark"
    android:textStyle="bold"
    android:layout_alignBaseline="@+id/textGoal"
    android:layout_alignBottom="@+id/textGoal"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/textGoal"
    android:textColor="@android:color/background_dark"
    android:textSize="15sp"
    android:layout_below="@+id/progressBar4"
    android:layout_marginTop="10dp"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:layout_toRightOf="@+id/GoalPercent"
    android:layout_toEndOf="@+id/GoalPercent" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignTop="@+id/Temp"
    android:id="@+id/textTemp"
    android:textColor="@android:color/background_dark"
    android:textSize="15sp"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:layout_toEndOf="@+id/GoalPercent"
    android:layout_toRightOf="@id/GoalPercent"
    android:layout_alignLeft="@+id/textGoal"
    android:layout_alignStart="@+id/textGoal" />

<TextView
    android:text="@string/current_heart_rate"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/HR"
    android:textColor="@android:color/background_dark"
    android:textSize="15sp"
    android:textStyle="bold"
    android:layout_below="@+id/Temp"
    android:layout_marginTop="10dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignRight="@+id/Temp"
    android:layout_alignEnd="@+id/Temp" />

<TextView
    android:text="@string/body_temperature"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/Temp"
    android:textColor="@android:color/background_dark"
    android:textSize="15sp"
    android:textStyle="bold"
    android:layout_marginTop="15dp"
    android:layout_below="@+id/GoalPercent"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignRight="@+id/GoalPercent"
    android:layout_alignEnd="@+id/GoalPercent" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/textHR"
    android:textColor="@android:color/background_dark"
    android:textSize="15sp"
    android:layout_alignBaseline="@+id/HR"
    android:layout_alignBottom="@+id/HR"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:layout_alignLeft="@+id/textTemp"
    android:layout_alignStart="@+id/textTemp" />

<Spinner
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/spinGender"
    android:textColor="@android:color/background_dark"
    android:textSize="15sp"
    android:entries="@array/gender_choice"
    android:layout_alignParentTop="true"
    android:layout_toEndOf="@+id/Gender"
    android:layout_toRightOf="@id/Gender"
    android:layout_alignLeft="@+id/enterFeet"
    android:layout_alignStart="@+id/enterFeet" />

<TextView
    android:text="@string/gender_type"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/Gender"
    android:textColor="@android:color/background_dark"
    android:textSize="15sp"
    android:textStyle="bold"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignRight="@+id/Steps"
    android:layout_alignEnd="@+id/Steps" />

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:inputType="number"
    android:ems="10"
    android:id="@+id/enterStep"
    android:textColor="@android:color/background_dark"
    android:textSize="15sp"
    android:hint="@string/enter_value"
    android:maxLines="1"
    android:textAlignment="center"
    android:layout_alignBottom="@+id/SetStep"
    android:layout_alignLeft="@+id/textSteps"
    android:layout_alignStart="@+id/textSteps"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true" />

<ProgressBar
    style="@android:style/Widget.ProgressBar.Horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/progressBar4"
    android:maxHeight="35dip"
    android:minHeight="35dip"
    android:scrollbarSize="200dp"
    android:maxWidth="10dip"
    android:minWidth="10dip"
    android:layout_below="@+id/SetStep"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<TextView
    android:text="@string/total_steps_today"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/Steps"
    android:textColor="@android:color/background_dark"
    android:textSize="15sp"
    tools:textStyle="bold"
    android:layout_below="@+id/enterLbs"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/textSteps"
    android:textSize="15sp"
    android:textColor="@android:color/background_dark"

    android:layout_below="@+id/enterLbs"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:layout_toRightOf="@+id/GoalPercent"
    android:layout_toEndOf="@+id/GoalPercent" />

<Button
    android:text="@string/set_step_goal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/SetStep"
    android:textSize="15sp"
    android:onClick="SetGoal"
    android:textStyle="bold"
    android:layout_below="@+id/Steps"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:hint="@string/lbs"
    android:textAlignment="center"
    android:ems="5"
    android:textColor="@android:color/background_dark"
    android:textSize="15sp"
    android:id="@+id/enterLbs"
    android:layout_below="@+id/enterFeet"
    android:layout_alignRight="@+id/textSteps"
    android:layout_alignEnd="@+id/textSteps"
    android:layout_alignLeft="@+id/enterFeet"
    android:layout_alignStart="@+id/enterFeet" />

<TextView
    android:text="@string/enter_your_height"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="@android:color/background_dark"
    android:textSize="15sp"
    android:textStyle="bold"
    android:id="@+id/Height"
    android:layout_below="@+id/spinGender"
    android:layout_alignRight="@+id/Gender"
    android:layout_alignEnd="@+id/Gender"
    android:layout_marginTop="13dp" />

<TextView
    android:text="@string/enter_your_weight"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="@android:color/background_dark"
    android:textSize="15sp"
    android:textStyle="bold"
    android:id="@+id/Weight"
    android:layout_alignBaseline="@+id/enterLbs"
    android:layout_alignBottom="@+id/enterLbs"
    android:layout_alignLeft="@+id/Height"
    android:layout_alignStart="@+id/Height" />

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:hint="@string/feet"
    android:ems="4"
    android:textColor="@android:color/background_dark"
    android:textSize="15sp"
    android:textAlignment="center"
    android:id="@+id/enterFeet"
    android:maxLines="1"
    android:layout_below="@+id/spinGender"
    android:layout_alignLeft="@+id/textSteps"
    android:layout_alignStart="@+id/textSteps" />

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/enterInches"
    android:hint="@string/inches"
    android:ems="4"
    android:textColor="@android:color/background_dark"
    android:textSize="15sp"
    android:maxLines="1"
    android:textAlignment="center"
    android:layout_below="@+id/spinGender"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true" />

</RelativeLayout>

这是按下按钮时的功能:

public void SetGoal(View v) {

    Max = Integer.parseInt(Goal.getText().toString());
    GoalProgressBar.setMax(Max);
    GoalProgressBar.setProgress(Steps);
    //display goal completion percentage
    goalpercent = (Steps / Max) * 100;
    GoalPer.setText(Integer.toString(goalpercent));
}

我无法在计算机上使用模拟器。出于某种原因,我的计算机不会运行AVD Manager中的任何模拟器。任何帮助或建议表示赞赏。

1 个答案:

答案 0 :(得分:1)

因为您的editText和TextViews在布局中依赖于GoalPercent(ProgressBar)对齐方式。这就是为什么当GoalPercent(ProgressBar)显示或隐藏时,editText和TextViews改变了布局中的位置。

android:layout_toEndOf="@+id/GoalPercent"
android:layout_toRightOf="@id/GoalPercent"

删除它并重新设计小部件不依赖于GoalPercent ProgressBar。