如何将复选框设置为字符串中的自定义文本并保存到数据库中?
How to set checkbox to a custom text in string and save into database?
我正在研究 android
。我的 app
中有一个复选框,无论是否选中,我都想针对我的复选框保存自定义文本。
CheckBox atbSealedCheckBox;
String selectedAtbSealedValue ="";
atbSealedCheckBox = (CheckBox) view.findViewById(R.id.atbCheckBox);
现在,如果我选中 checkbox
,那么我想存储 Yes
,否则 No
。另外,我想将它存储在我的数据库中。为此,我已经在 Model
中创建了 get
和 set
方法
private String atbSealed;
public String getAtbSealed(){return atbSealed;}
public void setAtbSealed(String atbSealed){this.atbSealed=atbSealed;}
更新 1
根据建议,我尝试了以下
atbSealedCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if(isatbSealedChecked)
{
selectedAtbSealedValue = "Yes";
ctQuantitySpinner.setEnabled(false);
ctQuantitySpinner.setSelection(0);
isatbSealedChecked = true;
}
else
{
selectedAtbSealedValue = "No";
ctQuantitySpinner.setEnabled(true);
ctQuantitySpinner.setSelection(0);
isatbSealedChecked = false;
}
}
});
但这对我没有帮助。此外,ctQuantitySpinner
未在选中 atbSealedCheckbox
时禁用。此外,如果选中复选框的布尔值,则不会更改为 true
。虽然在 log
中我确实看到了 selectedAtbSealedValue
但它没有在应用程序中设置。在我的 SaveDataLocal()
函数中,我设置了如下值
survey.setAtbSealed(this.selectedAtbSealedValue);
SurveyManager dbHelper = new SurveyManager(getActivity());
dbHelper.addSurvey(survey);
我也试过下面的代码
atbSealedCheckBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(((CheckBox)v).isChecked())
{
ctQuantitySpinner.setEnabled(false);
ctQuantitySpinner.setSelection(0);
selectedAtbSealedValue = "Yes";
isatbSealedChecked = true;
//atbCheckBoxEdittext.setText(selectedAtbCheckBox);
}
else {
ctQuantitySpinner.setEnabled(true);
ctQuantitySpinner.setSelection(0);
selectedAtbSealedValue = "No";
isatbSealedChecked = false;
//atbCheckBoxEdittext.setText(selectedAtbCheckBox);
}
}
});
此代码显示 selected checkbox value
、禁用 spinner
并将微调器值设置为 null
。但复选框值再次未保存。
如何在字符串中保存自定义文本?
只要我理解你的问题,你想在用户选中你的复选框时更改此变量 String selectedAtbSealedValue ="";
。
要实现此声明,您可以使用 onCheckedListener,它会在用户选中或从您的复选框中取消选中时立即触发。
atbSealedCheckBox.setOnCheckedChangeListener( new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged( CompoundButton buttonView, boolean isChecked ) {
// Todo something.
}
} );
试试这个,对我有用:
atbSealedCheckBox.setOnCheckedChangeListener( new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged( CompoundButton buttonView, boolean isChecked ) {
if (isChecked) {
selectedAtbSealedValue = "yes";
} else {
selectedAtbSealedValue = "no";
}
}
} );
之后,您可以将selectedAtbSealedValue
存储到数据库中;
更新:您的固定码:
atbSealedCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if(b)
{
selectedAtbSealedValue = "Yes";
ctQuantitySpinner.setEnabled(false);
ctQuantitySpinner.setSelection(0);
isatbSealedChecked = true;
}
else
{
selectedAtbSealedValue = "No";
ctQuantitySpinner.setEnabled(true);
ctQuantitySpinner.setSelection(0);
isatbSealedChecked = false;
}
}
});
这对你有帮助。
在提交按钮处获取复选框的当前值。
submit_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
control_of_vectors_value = control_of_vectors_checkbox.isChecked() == true ? "yes" : "no"; }}
我正在研究 android
。我的 app
中有一个复选框,无论是否选中,我都想针对我的复选框保存自定义文本。
CheckBox atbSealedCheckBox;
String selectedAtbSealedValue ="";
atbSealedCheckBox = (CheckBox) view.findViewById(R.id.atbCheckBox);
现在,如果我选中 checkbox
,那么我想存储 Yes
,否则 No
。另外,我想将它存储在我的数据库中。为此,我已经在 Model
get
和 set
方法
private String atbSealed;
public String getAtbSealed(){return atbSealed;}
public void setAtbSealed(String atbSealed){this.atbSealed=atbSealed;}
更新 1
根据建议,我尝试了以下
atbSealedCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if(isatbSealedChecked)
{
selectedAtbSealedValue = "Yes";
ctQuantitySpinner.setEnabled(false);
ctQuantitySpinner.setSelection(0);
isatbSealedChecked = true;
}
else
{
selectedAtbSealedValue = "No";
ctQuantitySpinner.setEnabled(true);
ctQuantitySpinner.setSelection(0);
isatbSealedChecked = false;
}
}
});
但这对我没有帮助。此外,ctQuantitySpinner
未在选中 atbSealedCheckbox
时禁用。此外,如果选中复选框的布尔值,则不会更改为 true
。虽然在 log
中我确实看到了 selectedAtbSealedValue
但它没有在应用程序中设置。在我的 SaveDataLocal()
函数中,我设置了如下值
survey.setAtbSealed(this.selectedAtbSealedValue);
SurveyManager dbHelper = new SurveyManager(getActivity());
dbHelper.addSurvey(survey);
我也试过下面的代码
atbSealedCheckBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(((CheckBox)v).isChecked())
{
ctQuantitySpinner.setEnabled(false);
ctQuantitySpinner.setSelection(0);
selectedAtbSealedValue = "Yes";
isatbSealedChecked = true;
//atbCheckBoxEdittext.setText(selectedAtbCheckBox);
}
else {
ctQuantitySpinner.setEnabled(true);
ctQuantitySpinner.setSelection(0);
selectedAtbSealedValue = "No";
isatbSealedChecked = false;
//atbCheckBoxEdittext.setText(selectedAtbCheckBox);
}
}
});
此代码显示 selected checkbox value
、禁用 spinner
并将微调器值设置为 null
。但复选框值再次未保存。
如何在字符串中保存自定义文本?
只要我理解你的问题,你想在用户选中你的复选框时更改此变量 String selectedAtbSealedValue ="";
。
要实现此声明,您可以使用 onCheckedListener,它会在用户选中或从您的复选框中取消选中时立即触发。
atbSealedCheckBox.setOnCheckedChangeListener( new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged( CompoundButton buttonView, boolean isChecked ) {
// Todo something.
}
} );
试试这个,对我有用:
atbSealedCheckBox.setOnCheckedChangeListener( new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged( CompoundButton buttonView, boolean isChecked ) {
if (isChecked) {
selectedAtbSealedValue = "yes";
} else {
selectedAtbSealedValue = "no";
}
}
} );
之后,您可以将selectedAtbSealedValue
存储到数据库中;
更新:您的固定码:
atbSealedCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if(b)
{
selectedAtbSealedValue = "Yes";
ctQuantitySpinner.setEnabled(false);
ctQuantitySpinner.setSelection(0);
isatbSealedChecked = true;
}
else
{
selectedAtbSealedValue = "No";
ctQuantitySpinner.setEnabled(true);
ctQuantitySpinner.setSelection(0);
isatbSealedChecked = false;
}
}
});
这对你有帮助。 在提交按钮处获取复选框的当前值。
submit_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
control_of_vectors_value = control_of_vectors_checkbox.isChecked() == true ? "yes" : "no"; }}