2015-10-18 3 views
-1

Хранилище данных в приложении для Android: я новичок в Android & У меня есть настройки Активность, в которой у меня есть страна и состояние, которые являются обязательным для использования приложением. Когда пользователь выбирает страну и государство, он может делать определенные действия по своему выбору. Проблема в том, что когда он убивает приложение, данные удаляются, и пользователь снова и снова выбирает страну/состояние.Android: Хранить данные в приложении, когда приложение убито/перезапущено

Below is the code for Settings.java where there is a number picker for both country and state 

Где я взял Количество сборщиков, чтобы выбрать данные теперь, когда пользователь выбирает один раз он должен выбирать каждый раз, когда он возобновлен app.Once приложения убивается все настройки сбрасываются.

Settings.java

package com.app.info.app 

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.Button; 
import android.widget.NumberPicker; 
import android.widget.TextView; 
import android.widget.Toast; 
import com.app.info.app.Model.Country; 
import com.app.info.app.Singleton.BigBoss; 

public class Settings extends AppCompatActivity implements NavigationDrawerFragment.NavigationDrawerCallbacks, NumberPicker.OnValueChangeListener { 




    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_settings); 

    //Country Picker 
     final NumberPicker array1 =  
     (NumberPicker)findViewById(R.id.countrypicker); 
     array1.setMinValue(0); 
     array1.setMaxValue(BigBoss.getInstance().countries.length-1); 
     array1.setDisplayedValues(BigBoss.getInstance().getCountryNames()); 
     array1.setWrapSelectorWheel(true); 
     array1.setOnValueChangedListener(this); 

     //Tip picker where user choose the desired Tipping 
     NumberPicker statepick = (NumberPicker)findViewById(R.id.statepicker); 
     statepick.setWrapSelectorWheel(true); 
     statepick.setOnValueChangedListener(this); 

    //Tip picker 
     NumberPicker tippick = (NumberPicker)findViewById(R.id.tippicker); 
     tippick.setDisplayedValues(new String[] { "5%", "10%", "15%","20%","25%" }); 
     tippick.setMinValue(1);// restricted number to minimum value i.e 1 
     tippick.setMaxValue(5);// restricked number to maximum value i.e. 31 
     tippick.setWrapSelectorWheel(true); 
     tippick.setOnValueChangedListener(this); 

    } 

     public void onValueChange(NumberPicker picker, int oldVal, int newVal) { 
     if (picker.getId() == R.id.countrypicker) { 
      Country selectedCountry = BigBoss.getInstance().countries[newVal]; 
      BigBoss.getInstance().currentCountrySelected = selectedCountry; 
     }   // Here I am using the choosed country for some calculations 
    } 
     public void countryClicked(View v) { 
     NumberPicker np = (NumberPicker)findViewById(R.id.countrypicker); 
     NumberPicker statepick = (NumberPicker)findViewById(R.id.statepicker); 
     NumberPicker tippick = (NumberPicker)findViewById(R.id.tippicker); 
     TextView countrytv = (TextView) findViewById(R.id.countryval); 
     TextView statetv = (TextView) findViewById(R.id.stateval); 
     TextView tiptv = (TextView) findViewById(R.id.tipval); 
     statepick.setVisibility((View.GONE)); 
     tippick.setVisibility((View.GONE)); 
     if(np.getVisibility()==View.VISIBLE){ 
      np.setVisibility(View.GONE); 
     } else { 
      np.setVisibility(View.VISIBLE); // Hiding the picker when one is choosed 
     } 

    } 


     public void stateClicked(View v) { 

     NumberPicker np = (NumberPicker)findViewById(R.id.countrypicker); 

     NumberPicker statepick = (NumberPicker)findViewById(R.id.statepicker); 

     statepick.setMinValue(0); 
     String name ="India" ; 
     if (BigBoss.getInstance().currentCountrySelected != null) { 
      name = BigBoss.getInstance().currentCountrySelected.name; 
     } 
     statepick.setMaxValue(BigBoss.getInstance().getStateNamesForCountry(name).length-1); 
     statepick.setDisplayedValues(BigBoss.getInstance().getStateNamesForCountry(name)); // Get selected Country Above 

     NumberPicker tippick = (NumberPicker)findViewById(R.id.tippicker); 
     np.setVisibility((View.GONE)); 
     tippick.setVisibility((View.GONE)); 

     if(statepick.getVisibility()==View.VISIBLE){ 
      statepick.setVisibility(View.GONE); 

     } else { 
      statepick.setVisibility(View.VISIBLE); // Setting the visibility of elements 
     } 

    } 

     public void tipClicked(View v) { 
     NumberPicker np = (NumberPicker)findViewById(R.id.countrypicker); 

     NumberPicker statepick =(NumberPicker)findViewById(R.id.statepicker); 

     NumberPicker tippick = (NumberPicker)findViewById(R.id.tippicker); 
     np.setVisibility(View.GONE); 
     statepick.setVisibility((View.GONE)); 
     if(tippick.getVisibility()==View.VISIBLE){ 

      tippick.setVisibility((View.GONE)); 
     } else { 
      tippick.setVisibility(View.VISIBLE); 
     } 

    } 


     public void aboutUsclicked(View v) 
    { 

     Intent aboutus1 = new Intent(v.getContext(), AboutUs.class); 
     startActivity(aboutus1); 

    } 


    public void feedBackclick(View v) 
    { 

     Intent feed1 = new Intent(v.getContext(), FeedBack.class); 
     startActivity(feed1); 

    } 

    public void logout(View v) { 
    TextView logout = (TextView) findViewById(R.id.logout); 

    // Logout Button Click Listener 
     logout.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
      // Logout current userParseUser currentUser = ParseUser.getCurrentUser(); 

      ParseUser.logOut(); 

      ParseUser currentUser = ParseUser.getCurrentUser(); 
      currentUser.setEmail(""); 
      currentUser.setPassword(""); 
      currentUser.setUsername(""); 

      Intent homebk = new Intent(v.getContext(), MainActivity.class); 
      startActivity(homebk); 




     } 
    }); 

} 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
//  getMenuInflater().inflate(R.menu.menu_settings, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 

     //noinspection SimplifiableIfStatement 
     if (id == R.id.action_settings) { 
      return true; 
     } 

     return super.onOptionsItemSelected(item); 
    } 

    @Override 
    public void onNavigationDrawerItemSelected(int position) { 

    } 
} 

// Это как я выбираю элементы из Picker мне нужно хранить их локально, так что на Relaunch не существует хлопот, чтобы повторно выбрать.

ответ

0

Проверьте это руководство по общим предварительным настройкам here. Предупреждения Prefrences используются для хранения небольших количеств пользовательских данных, таких как данные настроек. Вы также можете использовать фрагмент prefrence, чтобы проверить учебник here.

+0

спасибо, что это помогло – user1664899

Смежные вопросы