2013-06-20 54 views
0

我正在使用复选框来保存数据库中的数据。如果通过保存数据,然后应用程序重定向到其他屏幕,如果我点击设备后退按钮,然后显示它的应用程序没有checked.how我可以解决这个问题? 在这里,我把代码在点击后退按钮后在android中保存复选框状态

public void joinLisn(){ 
    String shareProfileType2=Constants.PROFILE_SHARE_ALL; 
    String accessToken = null; 
    DatabaseHelper helper = new DatabaseHelper(getApplicationContext()); 
    DatabaseUtility dao = new DatabaseUtility(helper); 
    try { 
     accessToken = dao.getAccessToken(); 
    } catch (Exception e1) { 
     handler.sendEmptyMessage(1); 
     return; 
    } 

    if(accessToken == null || accessToken.length() == 0){ 
     handler.sendEmptyMessage(1); 
     return; 
    } 

    Map<String , String> params = new HashMap<String,String>(); 
    params.put(Constants.ACCESS_TOKEN_PARAM, accessToken); 
    params.put(Constants.LISN_ID_PARAM, id); 
    params.put(Constants.PROFILE_TYPE_PARAM,shareProfileType2); 

    Status status = null; 
    try { 
     status = Utils.joinLisn(params, this); 
    } catch (NullPointerException e) { 
     handler.sendEmptyMessage(12); 
     return; 
    } catch (JSONException e) { 
     handler.sendEmptyMessage(11); 
     return; 
    } 

    if(status == null){ 
     handler.sendEmptyMessage(1); 
    } else if(status.getStatus().equalsIgnoreCase(Constants.SUCCESS)){ 
     try { 
      Intent lisnDetailIntent = new Intent(this, LisnDetailTabView.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      Bundle bundleObj = new Bundle();  
      bundleObj.putString("id", id); 
      bundleObj.putString("RSVP","In"); 
      lisnDetailIntent.putExtras(bundleObj); 
      startActivityForResult(lisnDetailIntent,0); 
      overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right);  
      handler.sendEmptyMessage(8); 
     } catch(Exception ex) {} 
    } else{ 
     handler.sendEmptyMessage(2); 
     return; 
    } 
} 
+0

我对你的问题有点困惑。数据是不是保存在数据库中,或者复选框在返回时没有保持检查状态? – codeMagic

+0

没有数据未保存在数据库中 – user2218563

+0

问题尚不清楚。你可以粘贴屏幕截图(更容易理解,而不是墙上的文字)。 – Siddharth

回答

0

覆盖的onbackpressed触发你的函数保存的状态。

public void onBackPressed() { 
     //Do your db saving here 
     super.onBackPressed(); 
    } 
0

如果您的应用程序正在重定向到其他应用程序,您的应用程序将被置于后台。使用onSaveInstanceStateonRestoreInstanceState保存并恢复复选框状态。

+0

没有其他应用程序在这里渲染,问题是如果复选框被选中,然后应用程序重定向到下一个屏幕,然后如果我点击后退按钮,它将前一屏幕,但复选框状态不保存,复选框状态不保存是唯一的问题 – user2218563

相关问题