【问题标题】:Android Save Spinner SelectionAndroid 保存微调器选择
【发布时间】:2014-01-10 15:27:15
【问题描述】:

我有两个活动。在第二个活动中,我有一个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();
}

【问题讨论】:

  • 发布你的活动类——你只发布了一个帮助类——它是如何使用的? 什么不起作用 ?? spin 字段集在哪里?
  • 是普通的java类
  • 发布你的活动课
  • @Mr_and_Mrs_D 我已将代码更新为活动
  • @ShakeebAyaz 我已将代码更新为活动

标签: android android-intent spinner sharedpreferences commit


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      这就是我初始化位于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);
      

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

      【讨论】:

        猜你喜欢
        • 2011-12-04
        • 1970-01-01
        • 2011-07-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-20
        • 1970-01-01
        • 2019-05-24
        相关资源
        最近更新 更多