[英]How to write if else to get value from edit text android
我有3種類型的編輯文本輸入。
我想比較3個編輯文本以獲得FreeTime
。
xml代碼
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/morningLabel"
android:id="@+id/MorningLabel"
android:textStyle="bold"
android:layout_alignTop="@+id/textView2"
android:layout_alignRight="@+id/MorningText"
android:layout_alignEnd="@+id/MorningText" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Working Hour(s)"
android:id="@+id/textView3"
android:layout_centerHorizontal="true"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Afternoon"
android:id="@+id/textView2"
android:textStyle="bold"
android:layout_alignTop="@+id/textView5"
android:layout_centerHorizontal="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Evening"
android:id="@+id/textView5"
android:textStyle="bold"
android:layout_marginBottom="41dp"
android:layout_above="@+id/AfternoonText"
android:layout_toRightOf="@+id/textView3"
android:layout_toEndOf="@+id/textView3" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text=" 6.01 a.m. \n to \n12.00 p.m."
android:id="@+id/morningTime"
android:textStyle="italic"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/textView3"
android:layout_toStartOf="@+id/textView3" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text=" 12.01 p.m. \n to \n 6.00 p.m."
android:id="@+id/afternoonTime"
android:textStyle="italic"
android:layout_alignTop="@+id/morningTime"
android:layout_alignLeft="@+id/textView2"
android:layout_alignStart="@+id/textView2" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text=" 6.01 p.m. \n to \n12.00 a.m."
android:id="@+id/eveningTime"
android:textStyle="italic"
android:layout_alignTop="@+id/afternoonTime"
android:layout_alignLeft="@+id/EveningText"
android:layout_alignStart="@+id/EveningText" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Result"
android:id="@+id/btnNext"
android:layout_alignParentBottom="true"
android:layout_marginBottom="38dp"
android:layout_alignRight="@+id/eveningTime"
android:layout_alignEnd="@+id/eveningTime"
android:layout_alignLeft="@+id/morningTime"
android:layout_alignStart="@+id/morningTime"
android:textStyle="bold" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:ems="10"
android:id="@+id/MorningText"
android:hint="0-6"
android:layout_marginBottom="22dp"
android:autoText="true"
android:background="#ffd1d1d1"
android:editable="false"
android:textSize="@dimen/abc_text_size_display_1_material"
android:layout_above="@+id/morningTime"
android:layout_toLeftOf="@+id/textView3"
android:layout_alignLeft="@+id/morningTime"
android:layout_alignStart="@+id/morningTime"
android:text="@string/MorningInput"
android:singleLine="false"
android:textAlignment="center"
android:numeric="integer" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:ems="10"
android:id="@+id/AfternoonText"
android:hint="0-6"
android:autoText="true"
android:background="#ffd1d1d1"
android:editable="false"
android:textSize="@dimen/abc_text_size_display_1_material"
android:layout_alignTop="@+id/MorningText"
android:layout_alignLeft="@+id/afternoonTime"
android:layout_alignStart="@+id/afternoonTime"
android:layout_alignRight="@+id/afternoonTime"
android:layout_alignEnd="@+id/afternoonTime"
android:text="@string/AfternoonInput"
android:textAlignment="center"
android:numeric="integer" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:ems="10"
android:id="@+id/EveningText"
android:hint="0-6"
android:autoText="true"
android:background="#ffd1d1d1"
android:editable="false"
android:textSize="@dimen/abc_text_size_display_1_material"
android:layout_alignBaseline="@+id/AfternoonText"
android:layout_alignBottom="@+id/AfternoonText"
android:layout_alignRight="@+id/textView5"
android:layout_alignEnd="@+id/textView5"
android:text="@string/EveningInput"
android:textAlignment="center"
android:numeric="integer"
android:layout_alignLeft="@+id/textView5"
android:layout_alignStart="@+id/textView5" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="@string/timeLabel"
android:id="@+id/TimeText"
android:layout_above="@+id/btnNext"
android:layout_alignLeft="@+id/btnNext"
android:layout_alignStart="@+id/btnNext" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="c"
android:onClick="calculateClickHandler"
android:id="@+id/btnc"
android:layout_above="@+id/TimeText"
android:layout_toRightOf="@+id/afternoonTime"
android:layout_toEndOf="@+id/afternoonTime"
android:layout_marginBottom="42dp" />
這是java代碼。 我想如果其他地方我都錯了。 我該如何解決? 任何人的幫助:
public class WorkingHour extends Activity
{
public void calculateClickHandler(View view)
{
if (view.getId() == R.id.btnc)
{
Intent i=new Intent(this, Result.class);
// get the references to the widgets
EditText MorningInput = (EditText)findViewById(R.id.MorningText);
EditText AfternoonInput = (EditText)findViewById(R.id.AfternoonText);
EditText EveningInput = (EditText)findViewById(R.id.EveningText);
TextView TimeText = (TextView)findViewById(R.id.TimeText);
// get the users values from the widget references
int morninghour = Integer.parseInt(MorningInput.getText().toString());
int afternoonhour = Integer.parseInt(AfternoonInput.getText().toString());
int eveninghour = Integer.parseInt(EveningInput.getText().toString());
// calculate the free time
int freeTimeValue = calculateFreeTime(morninghour,afternoonhour,eveninghour);
// interpret the meaning of the bmi value
String freetimeInterpretation = interpretFT(freeTimeValue);
// now set the value in the result text
TimeText.setText(freeTimeValue + "-" + freetimeInterpretation);
SharedPreferences sp2 = getSharedPreferences("name2",MODE_PRIVATE);
SharedPreferences.Editor editor=sp2.edit();
editor.putString("rslt 3",TimeText.getText().toString());
editor.commit();
}
}
// the formula to calculate the free time
private int calculateFreeTime (int morninghour, int afternoonhour, int eveninghour)
{
if (((6- morninghour)> (6-afternoonhour)) && ((6- morninghour)> (6-eveninghour)))
{
return (int) (6 - morninghour);
}
else if (((6- afternoonhour)> (6-morninghour)) && ((6- afternoonhour)> (6-eveninghour)))
{
return (int) (6 - afternoonhour);
}
else if (((6- eveninghour)> (6-morninghour)) && ((6-eveninghour)> (6-afternoonhour)))
{
return (int) (6 - eveninghour);
}
return 0;
}
這段代碼:
if (freetime < )
{
return "morning";
}
絕對是錯誤的,甚至不應該編譯。 您在這里說的是:如果freetime
時間比什么都沒有,那就做點什么。 您必須在其中輸入一個值(例如):
if (freetime < 6)
{
return "morning";
}
else if (freetime < 12)
{
return "Afternoon";
}
同樣,也不必強制轉換此返回值,因為它們都是整數:
return (int) (6 - morninghour);
^^
如果您想使代碼更好一點(主要是為了提高可讀性),可以對此進行優化:
morninghour = 6 - morninghour;
afternoonhour = 6 - afternoonhour;
eveninghour = 6 - eveninghour;
if ((morninghour > afternoonhour) && (morninghour > eveninghour))
{
return morninghour;
}
else if ((afternoonhour > morninghour) && (afternoonhour > eveninghour))
{
return afternoonhour;
}
else if ((eveninghour > morninghour) && (eveninghour > afternoonhour))
{
return eveninghour;
}
return 0;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.