【发布时间】:2012-02-22 22:08:50
【问题描述】:
我创建了一个 For 循环,它为每个 ImageView 设置一个 ID 和一个 ClickListener。当点击被按下时, OnClickListner 要么似乎无法找到 ID,要么根本没有被调用。
public int[] myResources = {R.id.bblock1, R.id.bblock2, R.id.bblock3, R.id.bblock4, R.id.bblock5, R.id.bblock6, R.id.bblock7, R.id.bblock8};
ImageView[] bblock = new ImageView[7];
for(int i = 0; i==myResources.length; i++) {
bblock[i]=(ImageView)layout.findViewById(myResources[i]);
bblock[i].setOnClickListener(ActivityCheck);
}
View.OnClickListener ActivityCheck = new View.OnClickListener(){
public void onClick (View v){
if( v.getId() == (R.id.bblock1)){
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://twitter.com/#!/itz_jonno"));
startActivity(browserIntent);
}
^^ OnClickListener 无法找到视图。 虽然,不使用数组和循环,下面的代码确实有效:
ImageView bblock1=(ImageView)layout.findViewById(R.id.bblock1);
bbblock1.setOnClickListener(ActivityCheck);
任何想法为什么数组不起作用,但标准代码可以?
【问题讨论】:
-
使用条件 if ..switch..
标签: android arrays loops scope listener