0

我需要更改newiconid[0]to arg2from method的值onItemSelected()。我需要在onClick(). 以下代码不起作用,它只是保留newiconid[0]as的值0。如何做到这一点?

@Override
public void onClick(DialogInterface dialog,
        int which) {
    final int newiconid[] = new int[1];
    spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

        @Override
        public void onItemSelected(
                AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {
            // TODO Auto-generated method stub
            System.out.println("" + arg1 + arg2
                    + arg3);
            newiconid[0] = arg2;
        }

        @Override
        public void onNothingSelected(
                AdapterView<?> arg0) {
            // TODO Auto-generated method stub

        }
    });
    // TODO Auto-generated method stub
    System.out.println("updateicon "+newiconid[0]+" "+itemid);
    datasource.updateVSIcon(newiconid[0], itemid);
}
4

2 回答 2

2

您已将其设为FINAL, Final 是常量,一旦初始化就不要更改。尝试先进行决赛,然后让我们知道会发生什么。

于 2012-04-06T00:01:17.733 回答
2

你可以尝试做newiconid一个班级成员吗?然后它应该可以在两个范围内访问。是的,正如@Agent404 所说,不要成功final

于 2012-04-06T00:02:09.287 回答