您的位置:首页 > 其它

onclick方法中引用外部其它元素需要final问题解决

2012-12-25 12:39 393 查看
造成原因:View.OnClickListener是一个内部匿名类。在内部匿名类中调用外部类元素需要final

解决办法:

class FollowOnClickListener implements ImageView.OnClickListener {
private ImageView iconImageView;
private TextView nameTextView;

public FollowOnClickListener(ImageView iconIV, TextView nameTV) {
iconImageView = iconIV;
nameTextView = nameTV;

}

public void onClick(View v) {
if (!mFollowFile.exists()) {
mHandler.sendEmptyMessage(12);
return;
}
flag[location] = !flag[location];
if (flag[location]) {
((ImageView) v).setImageResource(R.drawable.unfollow_icon);

// 取消关注 置灰
nameTextView.setTextColor(Color.parseColor(Constants.COLOR_LIGHT_GRAY));
iconImageView.setImageBitmap(BitmapUtils
.toGrayscale(contact.getContactPhotoBitmap()));
} else {
((ImageView) v).setImageResource(R.drawable.follow_icon);

nameTextView.setTextColor(Color.parseColor(Constants.COLOR_BLACK));
iconImageView.setImageBitmap(contact
.getContactPhotoBitmap());
}

Message msg = new Message();
msg.what = 7;
msg.arg1 = location;
mHandler.sendMessage(msg);

}

}
viewHolder.unFollowImageView
.setOnClickListener(new FollowOnClickListener(
viewHolder.iconImageView, viewHolder.nameFollowTextView));


REFERENCES:http://stackoverflow.com/questions/11757306/android-setonclicklistener-onclick-method-non-final-variable
http://zhidao.baidu.com/question/289905031.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐