所以,我正在创建一个可扩展的列表,每个组头在右侧都有一个星形图标(图像按钮),可以按下它来指示它是否是最喜欢的。 我需要为每个星分配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;
}