gpt4 book ai didi

java - 选中的复选框数

转载 作者:行者123 更新时间:2023-11-29 19:12:29 25 4
gpt4 key购买 nike

我有 4 个复选框,我尝试在 TextView 上显示选中了多少个。
我创建了一个变量 numberOfTrue 并在开关中增加了它。当然,我的应用现在无法运行,textView 仍然显示“0”
更改点击框数后变量不刷新,我现在应该修复什么?
我不知道。

public class MainActivity extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener {

private int numberOfTrue = 0;
private TextView tv1;
private CheckBox cb1;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

CheckBox cb2,cb3,cb4;
Button b2;


b2 = (Button)findViewById(R.id.b2);

tv1 = (TextView)findViewById(R.id.tv1);
cb1 = (CheckBox)findViewById(R.id.cb1);
cb1.setChecked(getFromSP("cb1"));
cb1.setOnCheckedChangeListener(this);
cb2 = (CheckBox)findViewById(R.id.cb2);
cb2.setChecked(getFromSP("cb2"));
cb2.setOnCheckedChangeListener(this);
cb3 = (CheckBox)findViewById(R.id.cb3);
cb3.setChecked(getFromSP("cb3"));
cb3.setOnCheckedChangeListener(this);
cb4 = (CheckBox)findViewById(R.id.cb4);
cb4.setChecked(getFromSP("cb4"));
cb4.setOnCheckedChangeListener(this);


tv1.setText(""+numberOfTrue);


b2.setOnClickListener(new View.OnClickListener() {

public void onClick(View view) {

finish();

}
});



}


private boolean getFromSP(String key){
SharedPreferences preferences = getApplicationContext().getSharedPreferences("PROJECT_NAME", android.content.Context.MODE_PRIVATE);
return preferences.getBoolean(key, false);
}
private void saveInSp(String key,boolean value) {
SharedPreferences preferences = getApplicationContext().getSharedPreferences("PROJECT_NAME", android.content.Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean(key, value);
editor.commit();
}



@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

switch(buttonView.getId()){
case R.id.cb1:
saveInSp("cb1",isChecked);
if (isChecked == true){
numberOfTrue++;
}
break;
case R.id.cb2:
saveInSp("cb2",isChecked);
if (isChecked == true){
numberOfTrue++;
}
break;

case R.id.cb3:
saveInSp("cb3",isChecked);
if (isChecked == true){
numberOfTrue++;
}
break;

case R.id.cb4:
saveInSp("cb4",isChecked);
if (isChecked == true){
numberOfTrue++;
}
break;

}
}
}

最佳答案

1.) 按照answer here ,它表示将字符串与 TextView 一起使用喜欢tv1.setText(""+numberOfTrue);

2.) 添加tv1.setText(""+numberOfTrue);onCheckedChanged( 的末尾函数以反射(reflect)您的新值 textviewcheckChange之后事件

    @Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// switch code
tv1.setText(""+numberOfTrue);
}

关于java - 选中的复选框数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44811093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com