如何在内部类中使用变量而不将其声明为final

时间:2016-06-26 14:23:38

标签: android

我正在开发一个使用Estimote信标的应用程序,我对一个我需要在一个类中使用的变量有疑问。
所以在我的情况下,我需要保留一个实际的信标和前一个信标,并比较它是否是我的邻接矩阵中的邻居。
问题是我无法使之前的信标成为可能,就好像我声明它最终我在信标扫描仪操作期间无法修改它。如果我不能使它最终安卓工作室不允许我在内部类中使用它。你有解决这个问题的方法吗?

代码:

beaconManager = new BeaconManager(this);
        beaconManager.setBackgroundScanPeriod(1000,3000);
         int previousBeaconInMatrix = 0;


        beaconManager.setRangingListener(new BeaconManager.RangingListener() {





            public void onBeaconsDiscovered(Region region, List<Beacon> list) {
                if (!list.isEmpty())
                {

                    Animation animate =  AnimationUtils.loadAnimation(getApplicationContext(),R.anim.test);

                    int sizeOfList = list.size();


                        int  actualBeacon = findMyposition(list.get(0));



                        if(adjacencyMatrix[actualBeacon][previousBeacon] == 1) {
                        if (beaconTable.containsKey(number)) {


                            List<Integer> coordinates = new ArrayList<Integer>(2);
                            coordinates = beaconTable.get(number);
                            View myPosition = ButtonTable.get(coordinates);
                        blueButton.clearAnimation();
                        blueButton2.clearAnimation();
                        yellowButton.clearAnimation();
                        orangeButton.clearAnimation();
                        orangeButton2.clearAnimation();
                        purpleButton.clearAnimation();
                        redButton.clearAnimation();
                        greenButton.clearAnimation();
                            myPosition.startAnimation(animate);
                        }

                        } 


                 previousBeacon = actualBeacon ; 

   }
    }
       });
    region = new Region("ranged region", null, null, null);
}

1 个答案:

答案 0 :(得分:0)

使用在内部类中更改其值的变量的最简单方法是从外部类中的变量移动到私有属性。