我知道这类问题问了很多次。但仍然没有人对此给出完美的答案。
我有问题 :
我想从EditText1 ** 移动到另一个 **EditText2 。我已经检测到editText1但是如何将光标移动到editText2。?
简而言之,我必须将光标位置从一个 editText1 直接移动到另一个 EditText2。
我知道这类问题问了很多次。但仍然没有人对此给出完美的答案。
我有问题 :
我想从EditText1 ** 移动到另一个 **EditText2 。我已经检测到editText1但是如何将光标移动到editText2。?
简而言之,我必须将光标位置从一个 editText1 直接移动到另一个 EditText2。
我遇到了此类问题,并找到了如下解决方案。
这里我有两个 editText ,
如果我按“a”,我的光标将移动到下一步。我用下面的代码来做这件事。
final EditText editText = (EditText) findViewById(R.id.editText1);
editText.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v , int keyCode , KeyEvent event) {
EditText editText2 = (EditText) findViewById(R.id.editText2);
// TODO Auto-generated method stub
if (keyCode == event.KEYCODE_A) {
Selection.setSelection((Editable) editText2.getText(),editText.getSelectionStart());
editText2.requestFocus();
}
return true;
}
});
如果您对此有任何错误,请告诉我。如果我的回答对您有帮助,请采纳并点赞。
为此,您需要做的就是...将以下两个属性添加到 xml 中的 EditText 标记,除了最后一个 EditText(如果您也将它添加到最后一个 EditText,那么光标控件将再次转到第一个EditText 当您从键盘按 enter/next 时)
<EditText
.
.
android:singleLine="true"
android:imeOptions="actionNext"
.
.
/>
希望这可以帮助
这是一个工作示例,希望对您有所帮助。
XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<EditText
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Some string of text"
/>
<EditText
android:id="@android:id/text2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Some string of text"
/>
<Button
android:id="@android:id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button"
/>
</LinearLayout>
班级:
public class Example extends Activity {
TextView text1;
TextView text2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
text1 = (EditText) findViewById(android.R.id.text1);
text2 = (EditText) findViewById(android.R.id.text2);
Button button = (Button) findViewById(android.R.id.button1);
button.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
Selection.setSelection((Editable) text2.getText(), text1.getSelectionStart());
text2.requestFocus();
}
});
}
}
设置 onKeyListener 以检测按下每个键时按下的键检查您的条件以及何时满足您的条件 set edittext property edittext2.requestFocus();
我已经测试了所有以前的代码段,发现一切正常。但我发现使用正确的edittext对象调用“requestFocus()”也可以。根据问题,答案可以是:
edittext2.requestFocus();
这对我来说很好。如果我错了,请纠正我。