使用ImageButton.setId的可扩展列表返回nullpointerexception

时间:2014-01-03 17:49:27

标签: java android nullpointerexception expandablelistview imagebutton

所以,我正在创建一个可扩展的列表,每个组头在右侧都有一个星形图标(图像按钮),可以按下它来指示它是否是最喜欢的。 我需要为每个星分配id来指示哪一个是最喜欢的,哪一个不是。 当我使用setId()时,它返回nullpointerexception。 我做错了什么,我能做些什么给每个明星一个ID?谢谢:)

public int count=0;
@Override
    public View getGroupView(final int groupPosition, boolean isExpanded,View convertView, ViewGroup parent) {
        String headerTitle = (String) getGroup(groupPosition);
        if (convertView == null) {
            LayoutInflater infalInflater = (LayoutInflater) this._context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = infalInflater.inflate(R.layout.list_group, null);
        }

        TextView lblListHeader = (TextView) convertView
                .findViewById(R.id.lblListHeader);
        lblListHeader.setTypeface(null, Typeface.BOLD);
        lblListHeader.setText(headerTitle);
        lblListHeader.setOnClickListener(new OnClickListener(){
            public void onClick(View v) {

                mActivity.expandGroup(groupPosition);
            }
        });

        final ImageButton button = (ImageButton) convertView.findViewById(R.id.favoritelist_button);
        button.setId(count);       
        count=count+1;


        button.setImageResource(R.drawable.phone);

        button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                if(!tFave){
                    button.setImageResource(R.drawable.phone);
                    tFave = true;
                }
                else{
                    button.setImageResource(R.drawable.gmail);
                    tFave = false;
                }
            }
        });

        return convertView;
    }

0 个答案:

没有答案