0

似乎找不到任何不推荐使用的 (HONEYCOMB+) 示例来展示如何将动态创建的首选项添加到 apreferencefragment而不是使用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

任何建议将不胜感激。

4

1 回答 1

0

弄清楚了。在 onViewCreated() 中而不是在 onCreate() 中定义东西。

以编程方式搜索将首选项添加到首选项片段。这是一个示例如何以编程方式将 EditTextPreferences 添加到我的 PreferenceFragment?

于 2014-05-18T20:15:35.620 回答