Android 从微调器setonItemSelectedListener传递值

Android 从微调器setonItemSelectedListener传递值,android,android-spinner,onitemselectedlistener,Android,Android Spinner,Onitemselectedlistener,我试图获取微调器项的位置,并将其传递到另一个方法中。为了实现这一点,我在MainActivity中声明了一个微调器,并设置了onItemSelectedListener方法(根据用户单击获取位置)。现在我想将值从onItemselectedListener方法传递到另一个方法getItem()。但是在getItem()接收的值始终为null。我已附上我的代码以供进一步参考 public class MainActivity extends AppCompatActivity { Spin

我试图获取微调器项的位置,并将其传递到另一个方法中。为了实现这一点,我在MainActivity中声明了一个微调器,并设置了onItemSelectedListener方法(根据用户单击获取位置)。现在我想将值从onItemselectedListener方法传递到另一个方法getItem()。但是在getItem()接收的值始终为null。我已附上我的代码以供进一步参考

public class MainActivity extends AppCompatActivity {
    Spinner spinner;
    String[]array={"I","Me","Myself"};
    String abc;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        spinner= (Spinner) findViewById(R.id.spinner);
        spinnerAdapter adapter=new spinnerAdapter(MainActivity.this,android.R.layout.simple_spinner_dropdown_item);
        adapter.addAll(array);
        adapter.add("Select Here");
        spinner.setAdapter(adapter);
        spinner.setSelection(adapter.getCount());

       spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
           @Override
           public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
           abc= String.valueOf(spinner.getSelectedItemPosition()+1);
           }

           @Override
           public void onNothingSelected(AdapterView<?> adapterView) {

           }
       });

        getitem();
    }

public void getitem()
{
    Log.e("MSG",abc);
}


    }
public类MainActivity扩展了AppCompatActivity{
纺纱机;
字符串[]数组={“我”、“我”、“我自己”};
字符串abc;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
微调器=(微调器)findViewById(R.id.spinner);
spinnerAdapter=新的spinnerAdapter(MainActivity.this,android.R.layout.simple\u微调器\u下拉菜单\u项);
adapter.addAll(数组);
adapter.add(“在此处选择”);
旋转器。设置适配器(适配器);
spinner.setSelection(adapter.getCount());
spinner.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView AdapterView、View视图、int i、long l){
abc=String.valueOf(spinner.getSelectedItemPosition()+1);
}
@凌驾
未选择公共无效(AdapterView AdapterView){
}
});
getitem();
}
public void getitem()
{
Log.e(“MSG”,abc);
}
}
来自Android开发人员:

响应用户选择
公共类SpinneActivity扩展了活动实现OnItemSelectedListener{
...
已选择公共视图(AdapterView父视图、视图、,
内部位置,长id){
//已选择一个项目。您可以使用
//父项getItemAtPosition(pos)
}
未选择公共无效(AdapterView父级){
//另一个接口回调
}
}
parent.getItemAtPosition(pos)
可以获取字符串值,并根据需要将其传递给另一个活动。

来自Android开发人员:

响应用户选择
公共类SpinneActivity扩展了活动实现OnItemSelectedListener{
...
已选择公共视图(AdapterView父视图、视图、,
内部位置,长id){
//已选择一个项目。您可以使用
//父项getItemAtPosition(pos)
}
未选择公共无效(AdapterView父级){
//另一个接口回调
}
}

parent.getItemAtPosition(pos)
可以获取字符串值,并根据需要将其传递给另一个活动。

那么,当用户从微调器中选择一个项目时,abc变量将获得值。在这个代码段中,您可以从
onCreate()
调用
getitem()
方法。因此,只有当
onCreate()
也运行时,才会调用您的方法。尝试在变量初始化后移动
getitem()
调用。与此类似:
public void onItemSelected(AdapterView AdapterView,View View,int i,long l){abc=String.valueOf(spinner.getSelectedItemPosition()+1);getitem();}
那么,当用户从微调器中选择一项时,abc变量将获得值。在这个代码段中,您可以从
onCreate()
调用
getitem()
方法。因此,只有当
onCreate()
也运行时,才会调用您的方法。尝试在变量初始化后移动
getitem()
调用。与此类似:
public void onItems selected(AdapterView AdapterView,View View,int i,long l){abc=String.valueOf(spinner.getSelectedItemPosition()+1);getitem();}
public class SpinnerActivity extends Activity implements OnItemSelectedListener {
...

    public void onItemSelected(AdapterView<?> parent, View view, 
            int pos, long id) {
        // An item was selected. You can retrieve the selected item using
        // parent.getItemAtPosition(pos)
    }

    public void onNothingSelected(AdapterView<?> parent) {
        // Another interface callback
    }
}