2

我有这个代码

filethemeSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
    public void onNothingSelected(AdapterView<?> parent) {
    }
    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
        int throwid = (int)id;  
        System.out.println( "from onItemselected" +throwid);
    }
});

我尝试获取throwid变量的值,因此我创建了一个全局变量 themerowid ,然后执行以下操作:

themerowid = throwid;

但我有这个错误:

throwid 无法解析为变量

我该怎么做才能获得throwid价值?

问题是 throwid 没有改变值,它总是返回 0 ,我认为漏洞代码:

filethemeSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
    public void onNothingSelected(AdapterView<?> parent) {
    }
    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
           throwid = (int)id;  
          System.out.println( "from onItemselected" +throwid);
    }
});

没有被执行,这就是为什么我一直得到 0,这段代码有一个错误。

4

6 回答 6

0

throwId在匿名类(侦听器)之外定义,如下所示:

public class MyClass extends ... implements ... {
    ...
    ...
    int throwId;

    filethemeSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
        public void onNothingSelected(AdapterView<?> parent) {}

        public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
            throwId = (int)id;  
            System.out.println( "from onItemselected" +throwid);
        }
    });
}
于 2012-06-15T11:27:32.907 回答
0

看起来thowid不在可见范围内。尝试这个:

    filethemeSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
        public void onNothingSelected(AdapterView<?> parent) {
        }
        public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
              themerowid = (int)id;  
              System.out.println( "from onItemselected" + id);
        }
    });
于 2012-06-15T11:18:02.013 回答
0
    public YOURActivty extend Activty{
    int themerowid;  //<--------------------



      public void onCreate(Bundle savedInstanceState) {
      ...

    }


 public void xYZ() {

    filethemeSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
                    public void onNothingSelected(AdapterView<?> parent) {
                    }
                    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
                            int throwid = (int)id;  
                          System.out.println( "from onItemselected" +throwid);
                    }
                });

    }
}
于 2012-06-15T11:18:33.893 回答
0

全局声明 throwid ......然后使用它......

   int throwid
  filethemeSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
        public void onNothingSelected(AdapterView<?> parent) {
        }
        public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
                throwid = (int)id;  
              System.out.println( "from onItemselected" +throwid);
        }
    });
于 2012-06-15T11:18:35.547 回答
0

int throwid;(you shuld keep it as a field, because if you'll keep it as a local variable you have to declare it as final)

filethemeSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
            public void onNothingSelected(AdapterView<?> parent) {
            }
            public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
                    throwid = (int)id;  
                  System.out.println( "from onItemselected" +throwid);
            }
        });
于 2012-06-15T11:19:15.893 回答
0

try this way:

public class testingActivity extends Activity 
{

public int throwid;
 /** Called when the activity is first created. */

@Override      
public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.main);
  ////YOUR CODE...
          filethemeSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
            public void onNothingSelected(AdapterView<?> parent) {
            }
            public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
                     throwid = (int)id;  
                  System.out.println( "from onItemselected" +throwid);
            }
        });
}

}
于 2012-06-15T11:19:57.590 回答