我希望添加一个切换按钮或切换到我当前的应用程序。我想要做的是将当前点击的状态写入一个字符串,以便稍后可以通过应用程序的另一部分回调它。
我最终将要做的是使用我的微调器中的选定项,然后我的开关状态将两者组合并将其写入文本文件或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());
但这似乎不起作用,有没有办法将这些连接到这些保存的字符串?
答案 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 & %2$s</string>
然后在设置该字符串时,您将添加两个值,如下所示:
String whateverYouWantToShow;
whateverYouWantToShow = getString(R.string.current_states, SelectedServer, toggleIsChecked);
这会将值放入字符串资源中。
希望这有帮助!