2013-12-22 5 views
0

У меня есть два вида деятельности. Во втором действии у меня есть spinner. то, что я хотел бы сделать, - после того, как пользователь выберет элемент из счетчика, он сохранит с помощью actionbar прессу и обратно, которые будут загружать предыдущее действие. Основываясь на моих исследованиях, моя деятельность должна выглядеть примерно так, как показано ниже, но она не работает, что я делаю неправильно?Android Save Spinner Selection

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_edit); 
    getActionBar().setDisplayHomeAsUpEnabled(true); 

    spin = (Spinner)findViewById(R.id.editspin); 

    Intent i = this.getIntent(); 
    note = new ArgueItem(); 
    note.setKey(i.getStringExtra("key")); 
    note.setText(i.getStringExtra("text")); 

    EditText et = (EditText)findViewById(R.id.argueEdit); 
    et.setText(note.getText()); 
    et.setSelection(note.getText().length()); 


}private boolean saveState() { 
      prefs = PreferenceManager.getDefaultSharedPreferences(this); 
      SharedPreferences.Editor prefEditor = prefs.edit(); 
      int daddy = spin.getSelectedItemPosition(); 
      prefEditor.putInt("savedValue",daddy); 
      prefEditor.commit(); 
     return true; 
    } 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    EditText et = (EditText)findViewById(R.id.argueEdit); 
    String argueText = et.getText().toString(); 
    if(argueText.equals("")){ 
     Toast.makeText(this, "Please Enter A New ", Toast.LENGTH_SHORT).show(); 

     return false; 
    } 
    if (item.getItemId() == android.R.id.home) { 
     saveAndFinish(); 
    } 
    return false; 
} 
@Override 
public void onBackPressed() { 
    EditText et = (EditText)findViewById(R.id.argueEdit); 
    String argueText = et.getText().toString(); 
    if(argueText.equals("")){ 
     Toast.makeText(this, "Please Enter A New ", Toast.LENGTH_SHORT).show(); 

     return; 
    }else{ 
    saveAndFinish(); 
} 
+0

опубликуйте свой класс активности - вы только разместили вспомогательный класс - как он используется? _Что не работает? ?? Где задано поле 'spin'? –

+0

это нормальный класс java –

+0

post ur класс активности –

ответ

0

В вашей второй активности, вы должны переопределить onPause() и. Внутри напишите процесс сохранения.

protected void onPause(){ 
    super.onPause(); 

    //Include the code which, save the data. 
} 
0

Это, как я буду инициализировать мой счетчик, который находится в ActionBar. Я не добавляю его как пользовательский вид, но я использую функцию выпадающего меню.

actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); 
actionBar.setListNavigationCallbacks(adapter, new ActionBar.OnNavigationListener() { 
     @Override 
     public boolean onNavigationItemSelected(int itemPosition, long itemId) { 

      //save in preferences 
      PreferenceManager.getDefaultSharedPreferences(MainActivity.this).edit(). 
        putInt(SELECTED_DIARY_PREF, itemPosition).commit(); 

      return true; 
     } 
    }); 
int selPosition = PreferenceManager.getDefaultSharedPreferences(this).getInt(SELECTED_DIARY_PREF, 0); 
actionBar.setSelectedNavigationItem(selPosition); 

Что делает этот код является: сохранение предпочтение при выборе элемента меню будет нажата, и восстановление, что предпочтение, когда активность запускается. Надеюсь, поможет.

+0

Я обновил свой код до активности – LimpLimp