我写了一个spinner的事件类,并定义了一个全局变量,把position的值赋给全局变量,然后setText  这个position的值,结果是没问题的,然后写一个retrun全局变量的方法,在mainactivity方法里面显示这个值的时候发现这个值一直是0。为什么

解决方案 »

  1.   

    效果是这样的,可以看到上面的text是变化的,那个settext是在spinner内部类里面写的,而下面的text一直是不动的,
      

  2.   

    这个是spinner类的关键代码 mySpinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                    //position值是0到4,分别表示思源弘毅等等
                    switch (mySpinner.getSelectedItemPosition()){
                        case 0:
                           DormitoryP=mySpinner.getSelectedItemPosition();
                            String a1=String.valueOf(DormitoryP);
                            textView.setText(a1);
                            break;
                        case 1:
                            DormitoryP=mySpinner.getSelectedItemPosition();
                            String a2=String.valueOf(DormitoryP);
                            textView.setText(a2);
                            break;
                        case 2:
                            DormitoryP=mySpinner.getSelectedItemPosition();
                            String a3=String.valueOf(DormitoryP);
                            textView.setText(a3);
                            break;
                        case 3:
                            DormitoryP=mySpinner.getSelectedItemPosition();
                            String a4=String.valueOf(DormitoryP);
                            textView.setText(a4);
                            break;
                        case 4:
                            DormitoryP=mySpinner.getSelectedItemPosition();
                            String a5=String.valueOf(DormitoryP);
                            textView.setText(a5);
                            break;
    /******************************************************/
    下面这个是mianactivity的内容
    public class MainActivity extends AppCompatActivity {
    private TextView textView2;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            textView2=(TextView)findViewById(R.id.textView2);
            SpinnerFiction s=new SpinnerFiction();
            try {
                s.Fiction(this);
            } catch (IOException e) {
                e.printStackTrace();
            }
            String s1=String.valueOf(s.R());
            textView2.setText(s1);    }}
      

  3.   

    是不是spinner不允许带position的值出去啊,但我已经把position赋值给成员变量了,还这样?
      

  4.   

    textView2只有onCreate的时候setText    需要怎么变??
      

  5.   

    我在onCreate方法里面已经用了spinner类的返回position方法了,是得到position值后再setText 的
      

  6.   

    spinner是一个列表选择框,会在用户选择后,展示一个列表供用户进行选择。spinner是viewgroup的间接子类,它和其他的android控件一样,数据需要使用adapter进行封装。http://www.apkbus.com/thread-586993-1-1.html