2012-05-01 11 views
0

私はいくつかの編集テキスト(名前、電話、コメント)を含むレイアウトを持っています。ビューが表示される前に、1つの編集テキストが非表示になり(comments.setVisibility(View.GONE))、HTTP呼び出しの結果に基づいて表示されます。そのビューが非表示であり、ユーザータブが前のビューからのものである場合、プログラムは停止します。Android:フィールドの可視性がGONEに変更されたときのXMLのフォーカス順序を変更

Winformsでは、フィールドが非表示の場合、タブオーダーの次の項目がフォーカスされます。 Androidで私の見解のためにXMLでこれを行う方法はありますか?

私はちょうど次のフォーカスを変更し、次はプログラム的にフォーカスすることができますが、それは自動的に行うべきことのようです。

答えて

0

Androidがこれを行う方法が見つかりませんでした。そこで、次のフォーカスを下に置いてループを形成すると仮定して、次のフォーカスを下げる方法があります。

protected int getNextFocusDownBasedOnVisibility(View view) 
{ 
    int nextViewDownId = View.NO_ID; 

    if (view.getVisibility() != View.GONE) 
    { 
     boolean keepGoing = true; 
     View nextView = view; 

     while (keepGoing) 
     { 
      keepGoing = false; 
      nextViewDownId = nextView.getNextFocusDownId(); 

      if (nextViewDownId != View.NO_ID) 
      { 
       nextView = findViewById(nextViewDownId); 

       if (nextView.getVisibility() == View.GONE) 
       { 
        keepGoing = true; 
       } 
      } 
     } 
    } 

    return nextViewDownId; 
} 
関連する問題