在表格布局中使用android:imeOptions =“actionNext”的问题

时间:2011-01-13 14:34:01

标签: android tablelayout ime

我有这个Table布局,包含3个EditText字段&一个执行计算的按钮。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent">
 <TextView
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:text="@string/lbl_fuel_order"
  android:textSize="18dp"
  android:gravity="center_horizontal"/>
 <TableLayout
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:layout_gravity="center"
  android:stretchColumns="*">
  <TableRow>
   <TextView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:text="@string/lbl_arr_kgs"
    android:textSize="12dp"
    android:layout_weight="1"/>
   <TextView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:text="@string/lbl_sg"
    android:textSize="12dp"
    android:layout_weight="1"/>
  </TableRow>
  <TableRow>
   <EditText
    android:id="@+id/arr_fuel"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:lines="1"
    android:inputType="number"
    android:imeOptions="actionNext"/>
   <EditText
    android:id="@+id/sg"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:lines="1"
    android:inputType="numberDecimal"
    android:imeOptions="actionNext"/>
  </TableRow> 
  <TableRow>
   <TextView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:text="@string/lbl_req_tanks_kgs"
    android:textSize="12dp"
    android:layout_weight="1"/>
  </TableRow>
  <TableRow>
   <EditText
    android:id="@+id/req_tanks_fuel"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:lines="1"
    android:inputType="number"
    android:imeOptions="actionNext"/>
   <Button
    android:id="@+id/btn_calc_fuel_order"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:text="@string/lbl_calc"/>
  </TableRow>
  <TableRow>
   <TextView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:text="@string/lbl_uplift_kgs"
    android:textSize="12dp"
    android:layout_weight="1"/>
   <TextView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:text="@string/lbl_uplift_l"
    android:textSize="12dp"
    android:layout_weight="1"/>
  </TableRow>
  <TableRow>
   <TextView
    android:id="@+id/req_weight"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:gravity="left"
    android:lines="1"
    android:text="000000"
    android:textSize="24dp"
    android:textColor="#ff0000"/>
   <TextView
    android:id="@+id/req_volume"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:gravity="left"
    android:lines="1"
    android:text="111111"
    android:textSize="24dp"
    android:textColor="#00ff00"/>
  </TableRow>
 </TableLayout>
    </LinearLayout>

表格布局顶行的左侧EditText在活动开始时具有焦点。但是,当我在软键盘上单击下一步时,光标移动到底行的左侧EditText而不是右侧的EditText(在顶行)。我已经测试了右上角的EditText,它将光标发送到底行的左侧EditText,如我所愿。

有没有办法让光标从右上角的左侧EditText开始向右移动那么从那里到底行的左手EditText?

如果可以,我还可以安排它将焦点移到底行右侧的按钮吗?

由于

3 个答案:

答案 0 :(得分:2)

试试这个......

TextView nextField = (TextView)currentField.focusSearch(View.FOCUS_RIGHT);
nextField.requestFocus();

当您按下软键盘上的NEXT按钮时,Android会搜索最近的可用NEXT文本字段以移动焦点。您可以指定应该说服搜索的方向。您还可以阅读 IME(Input Method Editors) options

答案 1 :(得分:0)

只需添加android:singleLine =&#34; true&#34;到您的EditText。它会工作!! :)

答案 2 :(得分:0)

android:lines="1" 添加到 EditText 对我有帮助。

android:singleLine="true",作为另一个建议的答案,自 API 级别 15 起已弃用。