0

我试图让用户从微调器中选择一个项目,当按下“提交”按钮时,将数据提交给 SharedPrefences。

这是微调器所在的位置:

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_new_baby_profile);

    Spinner spinner = (Spinner) findViewById(R.id.dob_month);
    // Create an ArrayAdapter using the string array and a default spinner layout
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
            R.array.months_array, android.R.layout.simple_spinner_item);
    // Specify the layout to use when the list of choices appears
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    // Apply the adapter to the spinner
    spinner.setAdapter(adapter);

}

这是按下提交按钮时方法中的内容:

String Text = spinner.getSelectedItem().toString();
    editor.putString("dob_month",dobMonth).commit();

1) 按下按钮时的方法中未定义“微调器”

2)我知道我缺少微调器的监听器,我将如何以及在哪里实现它?

4

3 回答 3

0

您已经初始化了微调器,onCreate()因此该方法之外的任何人都无法访问它。

改成这个

    Spinner mSpinner;

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_new_baby_profile);

    mSpinner = (Spinner) findViewById(R.id.dob_month);
    ...
于 2013-10-14T01:52:40.647 回答
0

这是使微调器工作所需的一切:

protected void onCreate(Bundle savedInstanceState) {



    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_youractivity);
    Spinner spinner=(Spinner)findViewById(R.id.spinnerxmlname);
    spinner.setOnItemSelectedListener(this);
    List<String> items=new ArrayList<String>();
            items.add()= //set all month names
            ArrayAdapter<String> adapter =new  ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item,items );
    // Specify the layout to use when the list of choices appears
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    // Apply the adapter to the spinner
    spinner.setAdapter(adapter);

            }


@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos,
        long id) {
    // TO code what should be done when an item is selected,in your case commit
            //to sharedpreferences
    String Text = spinner.getSelectedItem().toString();
            editor.putString("dob_month",
                                        (String)parent.getItemAtPosition(pos).commit();

    }
@Override
public void onNothingSelected(AdapterView<?> arg0) {
    // TODO Auto-generated method stub

}

另请注意,您的 Activity 应实现接口 OnItemSelectedListener

于 2013-10-14T02:36:02.730 回答
0

您是否声明并初始化了 sharedpreference 和 editor 对象?

于 2013-10-14T01:39:56.227 回答