Android在没有xml的情况下动态地将表单字段添加到preferencefragment

时间:2014-03-04 18:16:25

标签: android dynamic android-activity preferencefragment

似乎找不到任何未弃用的(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

非常感谢任何建议。

1 个答案:

答案 0 :(得分:0)

想出来。在onViewCreated()而不是onCreate()中定义东西。

以编程方式搜索向首选项片段添加添加首选项。 这是一个例子How do I programmatically add EditTextPreferences to my PreferenceFragment?