Android SharedPreferences аварийно завершает работу при получении значений в пользовательском представлении - PullRequest
0 голосов
/ 10 августа 2011

Я некоторое время искал, но, похоже, ни у кого на самом деле нет такой проблемы, так что, может быть, это просто простая ошибка программирования.

После новой установки на мой планшет программа загружается, затем, если вы перейдете в меню настроек, выберите текстовое поле nPref и введите значение, с которым программа справится. Но когда вы перезапускаете программу, она падает изначально после ввода значения.

Грубый набросок моей программы выглядит так:

    <import statments>
    public class Galaxy extends Activity{
            public void onCreate(Bundle savedInstanceState) {
                 requestWindowFeature(Window.FEATURE_NO_TITLE);                                    
                 requestWindowFeature(Window.FEATURE_NO_TITLE);
                 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
                    WindowManager.LayoutParams.FLAG_FULLSCREEN); //request fullscreen
                 super.onCreate(savedInstanceState);
                 setContentView(new Simulation(this)); //set contentview to my class
            }
            public boolean onCreateOptionsMenu(Menu menu) { //create ("inflate") the menu
                 MenuInflater inflater = getMenuInflater();
                 inflater.inflate(R.layout.options_menu, menu);
                 return true;
            }
            public boolean onOptionsItemSelected(MenuItem item) { //check if a menu item is pressed
                switch (item.getItemId()) {
                case R.id.m_SETTINGS:
                   Toast.makeText(Galaxy_test2Activity.this, "Preference Launched!",Toast.LENGTH_SHORT);
                   Intent i = new Intent(Galaxy_test2Activity.this, Preferences.class);
                   startActivity(i);

                   return true; 
                 default:
                     return super.onOptionsItemSelected(item);
                 }

            }   

            class Simulation extends View {
                  //I declare my program variables here
                  public Simulation(Context context) {
                       super(context);
                       SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); //get the preferences
                       int storedPreference = preferences.getInt("nPref", 0); //attempt to get a value from the preferences
                       Log.i(TAG, "storedPref nPref = " + storedPreference); //log it to see if it is working
                       //rest of my program
                       //I also have onDraw and onTouchEvent
                  }
             }
             }

Если вам нужно что-то еще, я могу опубликовать это

Спасибо!

...