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