我需要在TextView中显示当前值(删除String后)。 当按钮打开时我添加字符串,我需要删除它,当它关闭时(我不知道我是否做得好),接下来我需要在TextView中显示字符串而不删除串。我只需要在On按钮上显示Strings。 这是我的代码:
public class Calc extends ActionBarActivity {
TextView display;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_calculator);
display = (TextView)findViewById(R.id.textView2);
display.setText("Add item");
}
static boolean isempty=true;
public void changeButton(View sender) {
ToggleButton btn = (ToggleButton) sender;
ArrayList<String> mActiveToggles = new ArrayList<String>();
String b = btn.getText().toString();
boolean on = ((ToggleButton) sender).isChecked();
if(on) {
if (isempty) {
if (b.equals("0")) return;
display.setText(btn.getText());
mActiveToggles.add(b);
isempty = false;
} else {
display.append(btn.getText());
mActiveToggles.add(b);
}
}
else
{
if (b.equals(btn.getText()))
{
mActiveToggles.remove(b);
display.setText(mActiveToggles.toString());
}
}
}
答案 0 :(得分:0)
根据新信息进行编辑:
要显示TextView
中当前开启的所有切换的文字,我建议您创建一个
private ArrayList<String> mActiveToggles = new ArrayList<String>();
每当切换按钮设置为ON时,您都会将该切换按钮的标签添加到列表中。每当切换按钮设置为OFF时,您将从列表中删除标签。
if(on) {
if (b.equals("0")) return; // Don't really know why you need this one...
// If the button is ON, add its text label to the list.
mActiveToggles.add(btn.getText());
} else {
// If button is OFF, remove its text label from the list.
mActiveToggles.remove(btn.getText());
}
更新列表中项目的TextView
简单迭代,并将其添加到TextView
(使用适当的分隔符)。像这样:
StringBuilder allLabels = new StringBuilder();
for(String s : mActiveToggles) {
if(allLabels.length() > 0) {
allLabels.append(" "); // some divider between the different texts
}
allLabels.append(s);
}
display.setText(allLabels.toString());
如果您确实需要持久存储TextView
的内容,请迭代列表项并将它们连接起来,然后将它们存储到SharedPreferences
对象中。从存储中恢复它们只是拆分String并填充列表的相反操作。根据您提供的代码,我认为没有必要,但当然可以比您在此处发布的内容更多。
答案 1 :(得分:0)
要从共享首选项中获取字符串,您必须使用:
if(sharedpreferences.contains(key_value)){
textview.setText(sharedpreferences.getString(key_value, null));
}
如果您有任何问题,请告诉我。