黑马程序员技术交流社区
标题:
数组索引循环变换问题
[打印本页]
作者:
任亚俊
时间:
2013-12-19 23:23
标题:
数组索引循环变换问题
public class MainActivity extends Activity {
/**
* 实验思路: 目标:每个10秒修改ImageView控件的图片,实现图片的动态切换。
* 思路:利用Handler消息传递机制,在主线程中创建一个Handler对象,在子线程中每隔10秒用Handler对象向主线程发送消息。
*/
int imageSrc[] = { R.drawable.img1, R.drawable.img2,
R.drawable.img3 };
int resId = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ImageView iv = (ImageView) findViewById(R.id.imageView);
final Handler myHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
// 忘记了msg.what这个语句,值为1233代表什么呢,还是自己随便取的
if (msg.what == 0x1233) {
// 有点难,逻辑思维,修改图片,循环加1
// 每次加1,但不能超过length,
//iv.setImageResource(resId);
//resId = resId++ % imageSrc.length;
iv.setImageResource(imageSrc[resId++
% imageSrc.length]);
Log.i("my.android", ""+resId);
}
}
};
new Timer().schedule(new TimerTask() {
@Override
public void run() {
myHandler.sendEmptyMessage(0x1233);
Log.i("my.android", "执行run方法");
}
}, 0, 1000);
}
}
复制代码
//iv.setImageResource(resId);
//resId = resId++ % imageSrc.length;
iv.setImageResource(imageSrc[resId++
% imageSrc.length]);
Log.i("my.android", ""+resId);
我用注释的的那两句话,log结果,resId每次都是0,而在没注释的那一句,却正常,在循环变化,这是为什么呢,我觉得一样啊?
作者:
chensc
时间:
2013-12-20 08:14
学习学习!
作者:
小骗子
时间:
2013-12-20 12:24
本帖最后由 小骗子 于 2013-12-20 12:30 编辑
resId = resId++ % imageSrc.length; //resId做了重新赋值
未注释的情况
resId++就是resId++
a++和
a=a++ -1
循环一次后 两次a的值能相同吗
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2