2014年1月4日土曜日

EditTextでフォーカスされない

Androidアプリ開発で技術的にはまった事は、
今後の為にも記録として残すべきだと思い、さっそくブログ立ち上げで投稿。

ノートにまとめていってもいいんだけど、今流行りのブログをメモ帳代わりにしてみよう。

さっそく、フォーカス設定でちょっとはまった事。

  mNumInput1.requestFocus();でフォーカスをセットしているはずなのに、
フォーカス時のレイアウトがセットされない。。。

行き詰ること数時間、<item>タグの設定順が問題ということに気付く。


drawable/dialog_EditText_bg.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
 
    <!-- 押されていないときの定義 -->
 <item android:state_pressed="false">
  <shape xmlns:android="http://schemas.android.com/apk/res/android">
      <solid
          android:color="@color/cornflowerblue" />
      <corners
          android:radius="3dp"/>
      <stroke
          android:width="1dp"
          android:color="@color/white"/>
  </shape>
 </item>

    <!-- 押されたときの定義 -->
 <item android:state_pressed="true"
     android:state_focused="false">
  <shape xmlns:android="http://schemas.android.com/apk/res/android">
      <solid
          android:color="@color/cornflowerblue" />
      <corners
          android:radius="3dp"/>
      <stroke
          android:width="3dp"
          android:color="@color/darkorange"/>
  </shape>
 </item>

    <!-- フォーカスされたときの定義 -->
 <item android:state_focused="true">
     <shape xmlns:android="http://schemas.android.com/apk/res/android">
      <solid
          android:color="@color/cornflowerblue" />
      <corners
          android:radius="3dp"/>
      <stroke
          android:width="3dp"
          android:color="@color/green"/>
  </shape>
 </item>
</selector>


上から順に読み込んでいくようで、一番目のandroid:state_pressed="false" もしくは2番目のandroid:state_pressed="true">で処理が完了してしまい、3番目のandroid:state_focused="true"は処理されていなかったようだ。

 <!-- フォーカスされたときの定義 -->を一番上に持ってくることで解決!


0 件のコメント:

コメントを投稿