2016-08-16 29 views
0

背景アクティビティで焦点を合わせる問題を解決するにはどうすればよいですか?

開発ツール:Androidのメーカー2.1.3

デバイス:アンドロイドOS版4.4.2

私は複数のビューを持つアクティビティを持っています。私は特定のビュー(この場合はeditText1)に、ユーザーの以前の操作に基づいてプログラム的に焦点を合わせたいと考えました。だから私はこれにView.requestFocus()を雇った。この前に、私はeditText1trueにXML設計ファイルのfocusablefocusableInThouchModeを設定している:

<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

質問

以外のビューについてfalsefocusablefocusableInThouchModeを設定していますか?

私はここで何をしようとしているのですか?

+0

ビュー上でbringToFrontをプログラマチックに使用してみてください。それが役立つかどうかを見てください。カスタム配列のレイアウトのwhochには、複数のTextviewとButtonがありました。 – VikingPingvin

+0

@VikingPingvin、私は 'bringToFront'を試しました、結果は同じです。 – raidensan

答えて

0

フォーカスが当てられてはならないコンポーネントには、android:focusable="false"を設定することができます。あなたの質問が正しいかどうかわからない

+0

私はすでにそれをしました、運はありません – raidensan

関連する問題