Android Save Spinner Selection

时间:2013-12-22 03:59:56

标签: android android-intent spinner sharedpreferences commit

我有两项活动。在第二项活动中,我有一个spinner。我想要发生的是,在用户从微调器中选择一个项目后,它将通过actionbar按下并按下后退,这将加载上一个活动。根据我的研究,我的活动应该看起来像下面的内容,但它不起作用我做错了什么?

@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();
}

3 个答案:

答案 0 :(得分:0)

在第二项活动中,您必须覆盖onPause()和。{在里面写下保存过程。

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

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

答案 1 :(得分:0)

您应该使用FragmentActivity并在同一活动中添加/删除片段。 检查这些资源: http://developer.android.com/guide/components/fragments.html http://www.vogella.com/articles/AndroidFragments/article.html

答案 2 :(得分: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);

此代码的作用是:在单击菜单项时保存首选项,并在启动活动时恢复该首选项。希望它有所帮助。