Android:数组项上的监听器

标签 android arrays loops scope listener

我创建了一个 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 无法找到 View 。 虽然,在不使用数组和循环的情况下,下面的代码确实有效:

ImageView bblock1=(ImageView)layout.findViewById(R.id.bblock1);
bbblock1.setOnClickListener(ActivityCheck);

知道为什么数组不能工作,但标准代码可以吗?

最佳答案

更改 i==myResources.length进入i < myResources.length .

当前循环将立即退出,除非0 == myResources.length .

(虽然整个事件监听器是一个很好的诱饵。)

关于Android:数组项上的监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9075318/

相关文章:

android - 如何将数据库条目 "12"解析为日期格式为 "12"而不是 "0"

android - 如何在android中实现触摸和滑动事件

android - 带有 EditText 的加号和减号按钮

java - 为什么我要为String数组获取java.lang.NullPointerException?

arrays - 有关如何在 swift 中实现 Slice<T> 的任何提示吗?

C++按升序对指针数组进行排序

ajax - Wordpress:一页中的多个自定义循环与分页

android - 使用微调器、 Activity 结构切换 fragment

loops - 删除 Rust 循环中的边界检查以尝试达到最佳编译器输出

mysql - 如何在循环中运行 SQL 查询