背景アクティビティで焦点を合わせる問題を解決するにはどうすればよいですか?
開発ツール:Androidのメーカー2.1.3
デバイス:アンドロイドOS版4.4.2
私は複数のビューを持つアクティビティを持っています。私は特定のビュー(この場合はeditText1
)に、ユーザーの以前の操作に基づいてプログラム的に焦点を合わせたいと考えました。だから私はこれにView.requestFocus()
を雇った。この前に、私はeditText1
true
にXML設計ファイルのfocusable
とfocusableInThouchMode
を設定している:
<EditText
android:id="@+id/editText1"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight=".15"
android:inputType="numberDecimal"
android:maxLength="3"
android:text="1"
android:focusableInTouchMode="true"
android:focusable="true"
android:enabled="true" />
理想的なシナリオは次のようになります。それ以外の場合、ユーザーは現在のアクションの前に特定のmyCheckBox
を確認した場合、dditText1
にフォーカスを移動し、リターンを。
if(myCheckBox.isChecked()){
editText1.selectAll();
if(adet.requestFocusFromTouch()) {
Log.i(General.LOG_TAG, "editText1 has focus");
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText1, InputMethodManager.SHOW_IMPLICIT);
}
return;
}
実際には、他のビューの一部がeditText1
から即時にフォーカスします。私はeditText1
にフォーカスがあり、その中のテキストを瞬時に選択したことを見ることさえできます。また、editText1にフォーカスがあることをログで確認できます。
私のアクティビティにはLinearLayoutがあり、他のすべてのビュー(CheckBox、EditText、ListViewなど)がその中にあります。また、私は、私は私のシナリオでは、フォーカスをひったくり/得ることから私のeditText
以外のビューを防ぐことができますどのようにeditText1
質問
以外のビューについてfalse
にfocusable
とfocusableInThouchMode
を設定していますか?
私はここで何をしようとしているのですか?
ビュー上でbringToFrontをプログラマチックに使用してみてください。それが役立つかどうかを見てください。カスタム配列のレイアウトのwhochには、複数のTextviewとButtonがありました。 – VikingPingvin
@VikingPingvin、私は 'bringToFront'を試しました、結果は同じです。 – raidensan