<分区>
我得到一个错误:
12-27 20:53:21.874: W/ResourceType(829): Skipping entry 0x106000d in package table 0 because it is not complex!
代码:
private void change(final String txt , final int res , final int max , int seconds , final boolean s) {
i = 1;
final Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
if(i <= max){
int resourceId = getResources().getIdentifier(txt.replaceAll("i", String.valueOf(i).toString()), "id", getPackageName());
ImageButton imageButton = (ImageButton) findViewById(resourceId);
imageButton.setBackgroundResource(res);
if(s) {sound();}
i++;
}else{
this.cancel();
timer.cancel();
}
}
},0,seconds);
}
private void change2(final int res , final int c ,final int r , final int seconds , final boolean s) {
i = 1;
u = 1;
final Timer timer1 = new Timer();
timer1.schedule(new TimerTask() {
@Override
public void run() {
if(i <= c){
final Timer timer2 = new Timer();
timer2.schedule(new TimerTask() {
@Override
public void run(){
if(u <= r){
int resourceId = getResources().getIdentifier("c"+i+"_r"+u, "id", getPackageName());
ImageButton imageButton = (ImageButton) findViewById(resourceId);
imageButton.setBackgroundResource(res);
if(s) {sound();}
u++;
}else{
this.cancel();
timer2.cancel();
}
}
},0,seconds);}else{
this.cancel();
timer1.cancel();
}
}
},0,seconds);
}
public void onClickNext(View v){
change2(R.drawable.white_circle,left_num,right_num,250,false);
change("c"+left_num+"_ri", R.drawable.red_circle , right_num , 500 , true);
change("c"+left_num+"_ri", R.drawable.white_circle , right_num , 500 , false);
change("ci"+"_r"+left_num, R.drawable.green_circle , left_num , 500 , true);
change("ci"+"_r"+left_num, R.drawable.white_circle , left_num , 500 , false);
change2(R.drawable.yellow_circle,left_num,right_num,250,true);
}
在 xml 中我有 10x10 ImageButton
, c1_r1
到 c10_r10
,当 c 是 Column
并且 r 是原始
。
因为我有很多 ImageButton
,所以我尝试通过字符串获取 ID。
我使用 Timer
和 TimerTask
在下一次更改之前暂停一段时间。
如有任何问题,请输入评论。
抱歉代码复杂。