簡體   English   中英

如何編寫是否從編輯文本中獲取價值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM