使用Android Toggle按钮/开关的选定状态

时间:2016-06-06 14:27:01

标签: android

我希望添加一个切换按钮或切换到我当前的应用程序。我想要做的是将当前点击的状态写入一个字符串,以便稍后可以通过应用程序的另一部分回调它。

我最终将要做的是使用我的微调器中的选定项,然后我的开关状态将两者组合并将其写入文本文件或Db。

因此微调器工作和写入,我可以按如下方式保存其选定状态。

@Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

            SelectedServer = parent.getItemAtPosition(position).toString();

        }

所以当我稍后在我的代码中保存时,我可以调用SelectedServer字符串来保存这些数据。

我的问题是如何为一个开关复制这个,其中一个状态为true,保存值&amp; true,另一个为false,保存值&amp; false以便稍后调用。

原因是,保存的值将稍后添加到微调器中的选定项目。

所有帮助,建议赞赏

戴夫

**** savesettings事件

    public void saveSettings(View view) {

    File txtFolder = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/MyFolder/");
    if (!txtFolder.exists()) {
        txtFolder.mkdir();
    }
    File file = new File(txtFolder, "setting.txt");
    String.valueOf(SelectedServer.getBytes());
    try {
        FileOutputStream fos = new FileOutputStream(file);
        fos.write(SelectedServer.getBytes());
        fos.close();
        Toast.makeText(getApplicationContext(),"Setting Saved", Toast.LENGTH_LONG).show();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

}

}

所以我要做的就是我有

的地方
            FileOutputStream fos = new FileOutputStream(file);
        fos.write(SelectedServer.getBytes());

我将添加切换开关的状态,所以看起来像fos.write(SelectedServer + SelectedState.getBytes());

但这似乎不起作用,有没有办法将这些连接到这些保存的字符串?

1 个答案:

答案 0 :(得分:0)

在Android Developer库中有一个很好的切换开关示例。 (https://developer.android.com/guide/topics/ui/controls/togglebutton.html

设置setOnCheckedChangeListener将允许您更改字符串。

    String toggleisChecked;
    ToggleButton toggle = (ToggleButton) findViewById(R.id.togglebutton);

toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        if (isChecked) {
//Set the string to true
        toggleIsChecked = "true";

    } else {
        // Set the string to false
        toggleIsChecked = "false";
    }
}

});

我不确定您是否也在询问如何将两个值组合到同一个字符串中,因此最快的解释是在您的资源中创建一个字符串,例如:

<string name="current_states">%1$s &amp; %2$s</string>

然后在设置该字符串时,您将添加两个值,如下所示:

String whateverYouWantToShow;
whateverYouWantToShow = getString(R.string.current_states, SelectedServer, toggleIsChecked);

这会将值放入字符串资源中。

希望这有帮助!