我有这样的空白:
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
是一个类,Loggerstatus
是Arraylist
。
ArraySignal.LoggerStatus.get(counter) = separated[1];
这是预期的变量。因此,由于某种原因,最终变量不是变量而ArrayList.get
不想得到一个值位置而不是一个变量位置,这对我来说似乎非常不合逻辑,因为你可以得到一个常数。我错过了什么吗?此问题的解决方案也非常受欢迎。
答案 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]
我认为问题是,您正在尝试将值设置为函数