首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用OnClickListeners初始化数组中的按钮

使用OnClickListeners初始化数组中的按钮
EN

Stack Overflow用户
提问于 2014-09-28 15:23:03
回答 1查看 47关注 0票数 0

这将抛出空指针异常。我甚至在调用循环之前声明了9-10个按钮来填充Button数组。

代码语言:javascript
复制
public void initiateNumberButtons()
{
    for(int x = 0; x < numberButtonArray.length - 1; x++)
    {

         numberButtonArray[x] = (Button) findViewById(getResources().getIdentifier(idArray[x].toString(), "id", getPackageName()));
         numberButtonArray[x].setOnClickListener( new OnClickListener() {

            @Override
            public void onClick(View v) {      
                enableButtons();
                //numberPressed = numberPressed + numberButtonArray[x].getText().toString(); 

                Button b = (Button)v;
                numberPressed = numberPressed + b.getText().toString();
                runningTotal.setText(numberPressed);
            }
         }); 
    }               
}

具体地说,这一行: idArray填充了合法的按钮ids。

代码语言:javascript
复制
numberButtonArray[x] = (Button) findViewById(getResources().getIdentifier(idArray[x].toString(), "id", getPackageName()));
EN

回答 1

Stack Overflow用户

发布于 2014-09-28 16:01:53

如果idArray是用常规ids填充的-这意味着使用生成的R类(例如R.id.my_button1)中的整数,那么您应该只使用findViewById()方法,而不使用getIdentifier(...)。

代码语言:javascript
复制
findViewById(idArray[x])

getIdentifier()方法期望第一个参数是您在XML布局资源文件中声明的所需资源的字符串名称。例如"my_button1“。请注意,不鼓励使用此方法,因为直接通过其标识符检索资源要比通过其名称检索资源快得多。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26082621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档