获取Android中微调器的位置

Kha*_*ssa 35 android android-spinner

我正在尝试获取微调器的位置(数字),当选择在另一个Activity中使用它时,每次将根据所选项目显示不同的地图.当我运行应用程序时它崩溃了.这是第一个活动代码:

public class TestProjectActivity extends Activity {
    public Spinner spinner1;
    public Integer number;
    private Button valideButton;

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

    }

    public void MySpinner() {

        final Spinner spinner1 = (Spinner) findViewById(R.id.spinner1);

        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
                this, R.array.num, android.R.layout.simple_spinner_item);
                                      adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner1.setAdapter(adapter);

        spinner1.setOnItemSelectedListener(new OnItemSelectedListener() {

            public void onItemSelected(AdapterView<?> parentView,
                    View selectedItemView, int position, long id) {
                // Object item = parentView.getItemAtPosition(position);

                TestProjectActivity.this.number = spinner1
                        .getSelectedItemPosition() + 1;

            }

            public void onNothingSelected(AdapterView<?> arg0) {// do nothing
            }

        });

    }

    public void valide_button() {

        valideButton = (Button) findViewById(R.id.valide_button);
        valideButton.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {

                Intent intent = new Intent(TestProjectActivity.this,
                        MetroMapActivity.class);
                startActivity(intent);
            }

        });

    }

}
Run Code Online (Sandbox Code Playgroud)

Pla*_*eon 88

选择微调器的方法是:

  spinner1.getSelectedItemPosition();
Run Code Online (Sandbox Code Playgroud)

文档参考:http: //developer.android.com/reference/android/widget/AdapterView.html#getSelectedItemPosition()

但是,在您的代码中,您引用它的一个位置在您的代码中setOnItemSelectedListener().没有必要轮询微调器,因为该onItemSelected方法作为"位置"变量传递位置.

所以你可以改变这一行:

TestProjectActivity.this.number = position + 1;
Run Code Online (Sandbox Code Playgroud)

如果这不能解决问题,请发布应用崩溃时生成的错误消息.