在表格布局中使用 android:imeOptions="actionNext" 时出现问题
Posted
技术标签:
【中文标题】在表格布局中使用 android:imeOptions="actionNext" 时出现问题【英文标题】:Problem using android:imeOptions="actionNext" in Table Layout 【发布时间】:2011-06-08 13:06:05 【问题描述】:我的表格布局包含 3 个 EditText 字段和一个执行计算的按钮。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_
android:layout_>
<TextView
android:layout_
android:layout_
android:text="@string/lbl_fuel_order"
android:textSize="18dp"
android:gravity="center_horizontal"/>
<TableLayout
android:layout_
android:layout_
android:layout_gravity="center"
android:stretchColumns="*">
<TableRow>
<TextView
android:layout_
android:layout_
android:text="@string/lbl_arr_kgs"
android:textSize="12dp"
android:layout_weight="1"/>
<TextView
android:layout_
android:layout_
android:text="@string/lbl_sg"
android:textSize="12dp"
android:layout_weight="1"/>
</TableRow>
<TableRow>
<EditText
android:id="@+id/arr_fuel"
android:layout_
android:layout_
android:layout_weight="1"
android:lines="1"
android:inputType="number"
android:imeOptions="actionNext"/>
<EditText
android:id="@+id/sg"
android:layout_
android:layout_
android:layout_weight="1"
android:lines="1"
android:inputType="numberDecimal"
android:imeOptions="actionNext"/>
</TableRow>
<TableRow>
<TextView
android:layout_
android:layout_
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_
android:layout_
android:layout_weight="1"
android:lines="1"
android:inputType="number"
android:imeOptions="actionNext"/>
<Button
android:id="@+id/btn_calc_fuel_order"
android:layout_
android:layout_
android:layout_weight="1"
android:text="@string/lbl_calc"/>
</TableRow>
<TableRow>
<TextView
android:layout_
android:layout_
android:text="@string/lbl_uplift_kgs"
android:textSize="12dp"
android:layout_weight="1"/>
<TextView
android:layout_
android:layout_
android:text="@string/lbl_uplift_l"
android:textSize="12dp"
android:layout_weight="1"/>
</TableRow>
<TableRow>
<TextView
android:id="@+id/req_weight"
android:layout_
android:layout_
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_
android:layout_
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?
如果可能的话,我是否也可以安排它然后将焦点移到底行右侧的按钮上?
谢谢
【问题讨论】:
【参考方案1】:将android:lines="1"
添加到EditText
对我有帮助。
android:singleLine="true"
,正如另一个答案所建议的那样,自 API 级别 15 起已被弃用。
【讨论】:
【参考方案2】:只需将 android:singleLine="true" 添加到您的 EditText。它会工作的! :)
【讨论】:
【参考方案3】:试试这个...
TextView nextField = (TextView)currentField.focusSearch(View.FOCUS_RIGHT);
nextField.requestFocus();
一旦您点击软键盘上的 NEXT 按钮,Android 会搜索最近的可用 NEXT 文本字段来转移焦点。您可以指定应该说服搜索的方向。您还可以阅读 IME(Input Method Editors) options
【讨论】:
文章链接失效。也许这就是你所指的? android-developers.blogspot.it/2009/04/…以上是关于在表格布局中使用 android:imeOptions="actionNext" 时出现问题的主要内容,如果未能解决你的问题,请参考以下文章