似乎找不到任何未弃用的(HONEYCOMB +)示例,说明如何将动态创建的首选项添加到preferencefragment
,而不是使用预定义表单字段的xml
资源。
具体来说,我正在尝试使用已与手机配对的蓝牙设备创建一个复选框列表。使用mBluetoothAdapter.getBondedDevices()
,大概是CheckBoxPreference
。
class GeneralPreferenceFragment extends PreferenceFragment {
private Context context = getBaseContext();
private int i;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//get Bluetooth Adapter
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices();
if (pairedDevices.size() > 0) {
SharedPreferences prefs = context.getSharedPreferences("bt_devices", 0);
this.i = 0;
for (BluetoothDevice device : pairedDevices) {
CheckBoxPreference checkBoxPreference = new CheckBoxPreference(context);
checkBoxPreference.setKey("btDevice_"+this.i);
checkBoxPreference.setChecked(prefs.getBoolean("btDevice_"+this.i, false));
this.i++;
//(Somehow add CheckboxPreference to PreferenceFragment)
}// end for loop
}// end if(paired devices)
}// end onCreate()
} // end PreferenceFragment
非常感谢任何建议。
答案 0 :(得分:0)
想出来。在onViewCreated()而不是onCreate()中定义东西。
以编程方式搜索向首选项片段添加添加首选项。 这是一个例子How do I programmatically add EditTextPreferences to my PreferenceFragment?