如何将切换按钮状态保存到数据库,如果用户编辑,则编辑状态应保存到android中的数据库

时间:2014-04-14 06:16:25

标签: android

如何将切换按钮状态保存到数据库,如果用户编辑然后编辑状态应该保存到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();
                }  
}

3 个答案:

答案 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();
    }