如何将切换按钮状态保存到数据库,如果用户编辑然后编辑状态应该保存到android中的数据库。以下是我的代码它工作正常。但问题是当用户编辑 on < / strong>处于开启状态,切换按钮上显示绿灯。然后用户执行所需的操作。当用户再次返回再次编辑时,它仅显示 ,但没有绿灯是可见的。所以它看起来很糟糕所以请帮助我以下是我的代码。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.edit_layout);
edittext=(EditText)findViewById(R.id.device_text);
light=(ToggleButton)findViewById(R.id.light);
alarm=(ToggleButton)findViewById(R.id.alarm);
db = new DataBaseAdapter(this);
Intent i = getIntent();
if(i.hasExtra("Dname"))
val = i.getStringExtra("Dname");
if(i.hasExtra("Dlight"))
slight=i.getStringExtra("Dlight");
blight=Boolean.valueOf(slight);
if(i.hasExtra("Dalarm"))
salarm=i.getStringExtra("Dalarm");
balarm=Boolean.valueOf(balarm);
if(i.hasExtra("Daddress"))
pos=i.getStringExtra("Daddress");
db.open();
db.insertData(pos,val,slight,salarm);
c = db.getData();
edittext.setText(val);
light.setText(slight);
// light.setChecked(blight);
alarm.setText(salarm);
//alarm.setChecked(balarm);
db.close();
}
@Override
public void onBackPressed(){
db.open();
c=db.getData();
if (c.moveToFirst()) {
do {
String strSQL = "UPDATE DeviceDetails SET devicename ='"+ edittext.getText().toString() +"' WHERE uuid = '"+c.getString(c.getColumnIndex("uuid"))+"'" ;
db.select(strSQL);
slight=light.getText().toString();
salarm=alarm.getText().toString();
if(pos.equalsIgnoreCase(c.getString(c.getColumnIndex("uuid"))))
{
db.updateData(pos, edittext.getText().toString(),slight,salarm);
}
Intent intent=new Intent();
intent.putExtra("Dname", edittext.getText().toString());
intent.putExtra("Daddress",pos);
intent.putExtra("Dlight", slight);
intent.putExtra("Dalarm", salarm);
setResult(RESULT_OK, intent);
finish();
} while (c.moveToNext());
}
db.close();
super.onBackPressed();
}
}
答案 0 :(得分:0)
您可以使用SharedPrefernce
来保存切换按钮的状态。
sharedpreferences = context.getSharedPreferences("Toggle_pref", Context.MODE_PRIVATE);
Editor editor = sharedpreferences.edit();
editor.putInt("button_state", "state");
editor.commit();
答案 1 :(得分:0)
这是Toggle Button的代码,保存状态为..
private SharedPreferences spref;
private ToggleButton tb;
private boolean on;
spref = getSharedPreferences("APP", MODE_PRIVATE);
tb = (ToggleButton) findViewById(R.id.toogleButton);
on = spref.getBoolean("On", true); //default is true
if (on)
{
tb.setChecked(true);
} else
{
tb.setChecked(false);
}
tb.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if (tb.isChecked()) {
//Toast.makeText(MainActivity.this, "On : Notification will be Enabled", Toast.LENGTH_SHORT).show();
SharedPreferences.Editor editor = spref.edit();
editor.putBoolean("On", true); // value to store
editor.commit();
} else {
// Toast.makeText(MainActivity.this, "Off : Notification will be Disabled", Toast.LENGTH_SHORT).show();
SharedPreferences.Editor editor =spref.edit();
editor.putBoolean("On", false); // value to store
editor.commit();
}
}
});
答案 2 :(得分:0)
按照以下方式完成,我的问题解决了。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.edit_layout);
edittext=(EditText)findViewById(R.id.device_text);
light=(ToggleButton)findViewById(R.id.light);
alarm=(ToggleButton)findViewById(R.id.alarm);
db = new DataBaseAdapter(this);
Intent i = getIntent();
if(i.hasExtra("Dname"))
val = i.getStringExtra("Dname");
if(i.hasExtra("Dlight"))
slight=i.getStringExtra("Dlight");
blight=Boolean.valueOf(slight);
if(i.hasExtra("Dalarm"))
salarm=i.getStringExtra("Dalarm");
balarm=Boolean.valueOf(balarm);
Log.v("___EDIT CLASS____________", "__LIGHT TEXT_____________"+slight);
Log.v("_____EDIT CLASS_____________", "___ALARM TEXT____________"+salarm);
Log.v("___EDIT CLASS____________", "__LIGHT boolean_____________"+blight);
Log.v("_____EDIT CLASS_____________", "___ALARM boolean____________"+balarm);
// edittext.setText(val);
if(i.hasExtra("Daddress"))
pos=i.getStringExtra("Daddress");
Log.v("___________edittext", "_______________"+edittext.getText());
Log.v("__________address", "_______________"+pos);
db.open();
db.insertData(pos,val,slight,salarm);
c = db.getData();
edittext.setText(val);
light.setText(slight);
// light.setChecked(blight);
alarm.setText(salarm);
//alarm.setChecked(balarm);
if(slight.equalsIgnoreCase("on"))
{
light.setChecked(true);
}
else
{
light.setChecked(false);
}
if(salarm.equalsIgnoreCase("on"))
{
alarm.setChecked(true);
}
else
{
alarm.setChecked(false);
}
db.close(); }
@Override
public void onBackPressed(){
//saveData();
db.open();
c=db.getData();
if (c.moveToFirst()) {
do {
// slight=light.setClickable(true);
//salarm= String.valueOf(balarm);
Log.v("_______BACK PRESSED", "______UUID___________"+c.getString(c.getColumnIndex("uuid")));
Log.v("_______pos", "______UUID___________"+pos);
String strSQL = "UPDATE DeviceDetails SET devicename ='"+ edittext.getText().toString() +"' WHERE uuid = '"+c.getString(c.getColumnIndex("uuid"))+"'" ;
db.select(strSQL);
Log.v("___QUERY ", "_________________"+db.select(strSQL));
slight=light.getText().toString();
salarm=alarm.getText().toString();
Log.v("___EDIT CLASS____________", "__SLIGHT ___AFTER__________"+slight);
Log.v("_____EDIT CLASS_____________", "___SALARM ___AFTER_________"+salarm);
if(pos.equalsIgnoreCase(c.getString(c.getColumnIndex("uuid"))))
{
db.updateData(pos, edittext.getText().toString(),slight,salarm);
}
/*Log.v("_______BACK PRESSED", "______UUID___________"+c.getString(c.getColumnIndex("uuid")));
Log.v("_______cccccc", "______devicename___________"+c.getString(c.getColumnIndex("devicename")));
Log.v("______EDIT IN DB", "______LIGHT___________"+c.getString(c.getColumnIndex("light")));
Log.v("______EDIT IN DB", "______ALARM___________"+c.getString(c.getColumnIndex("alarm")));
*/
/* Log.v("______device_____text", "_______________"+c.getString(c.getColumnIndex("devicename")));
Log.v("___________edittext", "_______________"+edittext.getText().toString());
Log.v("_____ADDRESS______edittext", "_______________"+pos);
*/ Intent intent=new Intent();
intent.putExtra("Dname", edittext.getText().toString());
Log.v("_____edittext in intent________", "__________"+edittext.getText().toString());
intent.putExtra("Daddress",pos);
Log.v("_____edittext in intent________", "__________"+pos);
intent.putExtra("Dlight", slight);
intent.putExtra("Dalarm", salarm);
setResult(RESULT_OK, intent);
finish();
/* Log.v("_______EDIT IN DB", "______devicename___________"+c.getString(c.getColumnIndex("devicename")));
Log.v("______EDIT IN DB", "______LIGHT___________"+c.getString(c.getColumnIndex("light")));
Log.v("______EDIT IN DB", "______ALARM___________"+c.getString(c.getColumnIndex("alarm")));
*/
} while (c.moveToNext());
}
db.close();
super.onBackPressed();
}