Android最终变量没有变量?

时间:2016-04-05 09:53:51

标签: android arraylist final

我有这样的空白:

public static void checkStateSignal(final int counter) {
    for (int l = 0; l < counter; l += 10) {
        if (counter - l < 9) {

            Handler handler = new Handler();
            handler.postDelayed(new Runnable() {
                @Override
                public void run() {
                ArraySignal.LoggerStatus.get(counter) = separated[1];
                }
            },150);
        } 
    }
}

其中ArraySignal是一个类,LoggerstatusArraylist

我收到错误
ArraySignal.LoggerStatus.get(counter) = separated[1];

这是预期的变量。因此,由于某种原因,最终变量不是变量而ArrayList.get不想得到一个值位置而不是一个变量位置,这对我来说似乎非常不合逻辑,因为你可以得到一个常数。我错过了什么吗?此问题的解决方案也非常受欢迎。

3 个答案:

答案 0 :(得分:1)

这是因为您正在使用ArrayList的accesor .get(index)并返回一个值,您需要使用.add(index,elem)在给定位置添加元素。查看此链接以查看Add object to ArrayList at specified index

答案 1 :(得分:0)

您可以定义一个新类:

Class NewRunnable extends Runnable
{
   public int counter;
   public NewRunnable(int _counter)
   {
       counter = _counter;
       super();
   }
}

然后在您的代码中使用它,如:

handler.postDelayed(new NewRunnable(counter) {
                @Override
                public void run() {
                String[] separated;
                ArraySignal.LoggerStatus.get(counter) = separated[1];
                }
            },150);

答案 2 :(得分:0)

ArraySignal.LoggerStatus.get(counter) = separated[1]

我认为问题是,您正在尝试将值设置为函数