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

Теперь расскажите, в чем проблема с кодом выше. он генерирует любое * exception *, а затем post * stack trace *. –

ответ

0

Хранить его в общем предпочтении или просто использовать БД строку SQL облегченного

+0

но я не знаю, как это сделать? –

+0

[link] (http://stackoverflow.com/a/23024962/4192663) Это хороший пример этого –

0

Вы можете использовать SharedPreferences как это. Создайте свои SharedPreferences и Editor.

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

В приведенном выше коде, в каком месте я получаю pref.? –

+0

@PoonamDesai Я не понял, что означает u в * В приведенном выше коде, в каком месте я получаю pref.* и код в своем ответе или коде в вашем вопросе. – knownUnknown