我有两项活动。在第二项活动中,我有一个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();
}
答案 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);
此代码的作用是:在单击菜单项时保存首选项,并在启动活动时恢复该首选项。希望它有所帮助。