この種の質問が何度も出されたことは知っていますが、それでも誰も完璧な答えを出していません。
質問があります :
EditText1 ** から別の **EditText2に移動したい 。すでに editText1 を検出していましたが、カーソルを editText2 に移動するにはどうすればよいですか?
つまり、カーソル位置をある editText1 から別の EditText2 に直接移動する必要がありました。
この種の質問が何度も出されたことは知っていますが、それでも誰も完璧な答えを出していません。
質問があります :
EditText1 ** から別の **EditText2に移動したい 。すでに editText1 を検出していましたが、カーソルを editText2 に移動するにはどうすればよいですか?
つまり、カーソル位置をある editText1 から別の EditText2 に直接移動する必要がありました。
私はこの種の問題に直面し、以下のような解決策を見つけました。
ここに2つの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:
<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を設定して、押されたすべてのキーで押されたキーを検出し、条件をチェックし、条件がいつ満たされるかを設定します。setedittext property edittext2.requestFocus();
以前のすべてのコードセグメントをテストしましたが、すべて正常に機能していることがわかりました。しかし、適切なedittextオブジェクトを使用して「requestFocus()」を呼び出すだけでも機能していることがわかりました。質問のとおり、ansは次のようになります。
edittext2.requestFocus();
これは私にとってはうまく機能しています。私が間違っている場合は訂正してください。