2016-10-27 54 views
0

我的應用程序與鬧鐘有關。我在我的應用程序中使用了材料AlertDialog。我從AlertDialog中選擇一個值並按下選擇按鈕。我想存儲所選的值。它的價值集,直到我沒有改變它。我如何?Android材質對話框和存儲選定值

final Dialog dialog = new MaterialDialog.Builder(Settings_Activity.this) 
       .title(R.string.full_battery_alarm1) 
       .iconRes(R.mipmap.ic_launcher) 
       .limitIconToDefaultSize() 
       .items(R.array.full_battery_alarm) 
       .itemsCallbackSingleChoice(0, new MaterialDialog.ListCallbackSingleChoice() { 
        @Override 
        public boolean onSelection(MaterialDialog mdialog, View view, int pos, CharSequence text) { 
         manager.sessionWork(pos); 

         showToast(pos + " = " + text); 
         int i = Integer.parseInt(text.toString()); 

         SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(Settings_Activity.this); 
         SharedPreferences.Editor editor = preferences.edit(); 
         editor.putString("select full", Integer.toString(i)); 
         editor.apply(); 

         String abc = preferences.getString("select full", null); 

         final int l = Integer.parseInt(abc); 

         BroadcastReceiver batteryLevelReceiver = new BroadcastReceiver() { 
          public void onReceive(Context context, Intent intent) { 
           context.unregisterReceiver(this); 
           int rawlevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); 
           int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1); 

           if (rawlevel >= 0 && scale > 0) { 
            level = (rawlevel * 100)/scale; 
            showToast("level full" + level); 


            if (level == l) { 
             showToast("level full 2"+level); 

             Intent i1 = new Intent(Settings_Activity.this, StopActivity.class); 
             i1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 
             startActivity(i1); 
             finish(); 
            } 
           } 

          } 
         }; 
         IntentFilter batteryLevelFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); 
         registerReceiver(batteryLevelReceiver, batteryLevelFilter); 
         mdialog.setSelectedIndex(pos); 
         return true; 
        } 
       }) 
       .positiveText(R.string.choose) 
       .show(); 
+0

使用*共享偏好*來存儲該值並使用它。還張貼一些你的代碼,以便我們可以建議。 –

+0

現在告訴上面的代碼有什麼問題。它是否會生成任何*異常*然後發佈*堆棧跟蹤*。 –

回答

0

儲存於共享偏好或只使用一個數據庫行SQL精簡版

+0

但我不知道該怎麼做? –

+0

[鏈接](http://stackoverflow.com/a/23024962/4192663)這是一個很好的例子 –

0

您可以使用SharedPreferences這樣。創建您的SharedPreferences和編輯器。

static SharedPreferences sharedData; 
static SharedPreferences.Editor editor; 

現在

sharedData = getSharedPreferences("mySharedPreference", Context.MODE_PRIVATE); 
editor = sharedData.edit(); 

在此之後,以節省您的價值做

editor.putString("valueKey", ""+yourvaluevariable); editor.commit(); 

現在這個值被保存,將被檢索的事件時,你會關閉它後後啓動應用程序。 以後使用該值訪問

sharedData.getString("valueKey", ""); 
+0

在上面的代碼中,我得到的首選? –

+0

@PoonamDesai我不明白你的意思*在上面的代碼中我得到了pref.?*和代碼在我的答案或代碼中的問題。 – knownUnknown