开发者

Best way to figure out if a EditText was previously selected

I am currently working on a program that has two EditText boxes one for a screens Width and one for the screens Height. What I want to be able to do is that when a user knows either the height or width and they enter the measurement they have into the EditText box that corresponds with the measurement that they have and when they press enter it will give them the unknown dimension for a 16:9 screen.

Here is the user interface:

<TextView android:layout_height="wrap_content" 
    android:text="Screen Ratio:" 
    android:id="@+id/ScreenRatio" 
    android:layout_width="100dip" 
    android:layout_alignTop="@+id/rat开发者_如何学运维io_spinner" 
    android:layout_alignBottom="@+id/ratio_spinner" 
    android:gravity="center_vertical" />

<Spinner android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_toRightOf="@+id/ScreenRatio" 
    android:id="@+id/ratio_spinner"/>

<TextView
    android:layout_height="wrap_content"
    android:text="Units:"  
    android:layout_width="wrap_content" 
    android:layout_toLeftOf="@+id/unit_spinner"
    android:layout_alignTop="@+id/unit_spinner"
    android:layout_alignBottom="@+id/unit_spinner"
    android:gravity="center_vertical" 
    android:layout_alignParentLeft="true" 
    android:id="@+id/ScreenUnit"/>

<Spinner android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_toRightOf="@+id/ScreenRatio" 
    android:layout_below="@+id/ratio_spinner" 
    android:id="@+id/unit_spinner"/> 

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:paddingTop="3dip"
    android:paddingBottom="3dip"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"
    android:layout_below="@+id/unit_spinner" 
    android:id="@+id/screen_layout"
    android:stretchColumns="1,2">

    <View
        android:layout_height="2dip"
        android:background="#FF909090"/>

    <TableRow>
        <TextView
            android:layout_column="1"
            android:paddingTop="3dip"
            android:text="Screen Width:"/>
        <TextView
            android:layout_column="2"
            android:padding="3dip"
            android:text="Screen Height:"/>
    </TableRow>

    <TableRow
    android:paddingBottom="3dip" >
        <EditText
            android:layout_column="1"
            android:id="@+id/width_EditText"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@android:drawable/editbox_background" 
            android:inputType="number"
            android:textSize="14px"
            android:hint="Enter a Width"/>
        <EditText
            android:layout_column="2"
            android:id="@+id/height_EditText"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@android:drawable/editbox_background"
            android:numeric="integer"
            android:textSize="14px"
            android:hint="Enter a Height"/>
    </TableRow>



</TableLayout>

<Button
    android:id="@+id/enter"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content" 
    android:text="Enter"
    android:gravity="fill"
    android:paddingBottom="10dip"
    android:paddingRight="50dip"
    android:paddingLeft="50dip"  
    android:layout_alignRight="@+id/screen_layout" 
    android:layout_below="@+id/screen_layout"
    />

I want the app to be able to give me the value based on the last number entered into the EditText box and so that the user doesn't have to clear both boxes before trying another number. what is the best way of keeping up with which of the two boxes that the user had entered text into last was? I tried a if else statement based on if the boxes were in focus but couldn't manage to get it to work. Any suggestions?


EDITED:
Add a TextWatcher(the same one) to both the EditText which has the afterTextChanged(Editable s) method.

Editable s belongs to the textbox that the user is currently entering, and have a member variable of boolean type widthSelected.

So your code will be something like this:

if(s == edtWidth.getText())
{
    // User is typing in Width
      widthSelected = true;

}else
{
// User is typing in Height
     widthSelected = false;
}

In your button's onClickListener:

if(widthSelected)
{
width = Integer.parseInt(edtWidth.getText().toString());
edtHeight.setText("" + (9 * width)/16);
}else{

height = Integer.parseInt(edtHeight.getText().toString());
edtWidth.setText("" + (16 * height)/9);
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜