【问题标题】:how can I save my spinner input?如何保存微调器输入?
【发布时间】:2013-06-06 03:28:26
【问题描述】:

我创建了一个微调器,我想在关闭应用程序时保存所有微调器输入。我能怎么做?我认为共享偏好可以帮助我,但我不知道如何使用它! 这是我的代码:

 private Spinner spinner;
      private EditText Text;
      private ArrayAdapter<String> adapter;
      private Button addButton;

      public void onCreate(Bundle savedInstanceState)
      {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Text = (EditText) findViewById(R.id.et);
        final List<String> planets = new ArrayList<String>(Arrays.asList(getResources().getStringArray(R.array.clienti_arrays)));
        adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, planets);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        spinner = (Spinner) findViewById(R.id.spinner1);
        spinner.setAdapter(adapter);


        addButton = (Button) findViewById(R.id.add_new);
        addButton.setOnClickListener(new OnClickListener()
        {
          public void onClick(View v)
          {
            addNewSpinnerItem();
            Collections.sort(planets);

          }
        });
      }

      protected void addNewSpinnerItem()
      {
        String textHolder = "" + Text.getText().toString();
        adapter.add(textHolder);

      }

      public int compare(String s1, String s2) { return s1.toLowerCase().compareTo(s2.toLowerCase()); 

      }

    }

非常感谢您的帮助..

【问题讨论】:

    标签: android eclipse save spinner


    【解决方案1】:

    当您的应用程序将关闭时,覆盖 Activity 的 onPause() 以将所选值保存在 Shared Preferences 中:

    @Override
    public void onPause()
    {
        // get Spinner Slected text here
      String selectedtext = spinner.getSelectedItem().toString();
    
       //Create SharedPreferences to store selected value
    
        SharedPreferences spinnerPrefs = this.getSharedPreferences("spinnerPrefs", 
                                                               MODE_WORLD_READABLE);
        SharedPreferences.Editor prefsEditor = spinnerPrefs.edit();
        prefsEditor.putString("spinner_selectedtext", selectedtext);
        prefsEditor.commit();
    
        super.onPause();
    
    }
    

    并检索保存在SharedPreferences 中的值:

     SharedPreferences spinnerPrefs = this.getSharedPreferences("spinnerPrefs",
                                                               MODE_WORLD_READABLE);
     String selectedtext = spinnerPrefs.getString("spinner_selectedtext", 
                                                                 "nothing_selected");
    

    【讨论】:

    • 它不起作用..让我出错!在 String selectedtext = spinner.getSelectedItem().toString();
    • @Ormet :如果您与我分享此错误,您会遇到什么错误,那么我们会尽快解决它
    • 它让我出现这个错误:在 SharedPreferences 中的 android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:146) spinnerPrefs = this.getSharedPreferences("spinnerPrefs", MODE_WORLD_READABLE);
    • @Ormet :取决于您在哪里使用此代码确保您使用正确的上下文来访问 SharedPreferences 使用 Your_Current_Activity.this. getSharedPreferences 而不是 this.getSharedPreferences..
    • 问题是一样的!如果我不插入此代码“ SharedPreferences spinnerPrefs = MyAndroidAppActivity.this.getSharedPreferences("spinnerPrefs", MODE_PRIVATE); String selectedtext = spinnerPrefs.getString("spinner_selectedtext", "nothing_selected"); " 功能正常但不保存任何内容..当我插入它时会中断..为什么??我必须在哪里插入它?
    【解决方案2】:

    我在this post 中详细说明了如何做到这一点。每次您在编辑文本中输入一个项目时,它都会将其保存到包含您输入的最后 x 个项目的微调器中。内存一直存在,直到您卸载应用程序或手动清除数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-10
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      • 2015-04-19
      • 1970-01-01
      相关资源
      最近更新 更多