2016-10-27 27 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