2016-12-21 5 views
0

動的に環境設定(support.v7)を追加するテストアプリを作成しましたが、追加された環境設定にはフォーカスがありません。ただし、動的に追加されたプリファレンス(v1)にはフォーカスがある可能性があります。例えばAndroid:ダイナミックに追加されたv7環境設定はAndroid TVに重点を置いていません

(support.v7例えば、全くフォーカス)

import android.support.v14.preference.PreferenceFragment; 
import android.support.v7.preference.Preference; 
import android.support.v7.preference.PreferenceScreen; 

public final class MySettings extends PreferenceFragment { 
    private IntentFilter mIntentFilter; 
    private final BroadcastReceiver mReceiver = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      final String action = intent.getAction(); 
      if (action.equals("android.intent.action.MYTEST")) { 
       Preference pref1 = new Preference(getPreferenceManager().getContext()); 
       pref1.setTitle("First"); 
       getPreferenceScreen().addPreference(pref1); 
      } 
     } 
    }; 

    @Override 
    public void onResume() { 
     super.onResume(); 
     addPreferencesFromResource(R.xml.my_settings); // only contains a PreferenceScreen 
     mIntentFilter = new IntentFilter("android.intent.action.MYTEST"); 
     getActivity().registerReceiver(mReceiver, mIntentFilter); 
    } 
} 

しかし、以下にフォーカス (V1例、フォーカスを持っている)

import android.preference.PreferenceFragment; 
import android.preference.Preference; 
import android.preference.PreferenceScreen; 

public final class MySettings extends PreferenceFragment { 
    private IntentFilter mIntentFilter; 
    private final BroadcastReceiver mReceiver = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      final String action = intent.getAction(); 
      if (action.equals("android.intent.action.MYTEST")) { 
       Preference pref1 = new Preference(getContext()); 
       pref1.setTitle("First"); 
       getPreferenceScreen().addPreference(pref1); 
      } 
     } 
    }; 

    @Override 
    public void onResume() { 
     super.onResume(); 
     addPreferencesFromResource(R.xml.my_settings); // only contains a PreferenceScreen 
     mIntentFilter = new IntentFilter("android.intent.action.MYTEST"); 
     getActivity().registerReceiver(mReceiver, mIntentFilter); 
    } 
} 

を持つことはできませんしかし、移植作業のためにサポートライブラリv7を使用する必要があります。 サポートライブラリv7を使用して、どのようにフォーカスすることができますか?

ありがとうございました。あなたのPreferenceFragmentPreferenceFragmentCompatonResume

答えて

0

は、好みを示すために使用するリストビューにフォーカスを設定します。ここ

@Override 
public void onResume() { 
    super.onResume(); 
    // only contains a PreferenceScreen 
    addPreferencesFromResource(R.xml.my_settings); 
    mIntentFilter = new IntentFilter("android.intent.action.MYTEST"); 
    getActivity().registerReceiver(mReceiver, mIntentFilter); 

    // request focus on the listview 
    getListView().requestFocus(); 
} 

詳細:

関連する問題