假设我有这个代码,它会创建一个ImageView并将其放入linearlayout。
此外,我有一个OnClick监听器,应该在点击后删除旧的imageview并用新的替换它。
但奇怪的是它显示“构造函数ImageView(new View.OnClickListener(){})未定义”。
final LinearLayout LinLayBtn = new LinearLayout(this);
ImageView ivBtn = new ImageView(this);
ivBtn = mkatt.makeKey( ivBtn, btnHue, btnSat, buttonScale, buttonScaleCnt, textAdjust, btnTextColor, buttonText, btnOpa, spacingLR, spacingTB);
LinLayBtn.addView(ivBtn);
LinLayBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
LinLayBtn.removeAllViews();
ImageView ivBtn = new ImageView(this); // The constructor ImageView(new View.OnClickListener(){}) is undefined
ivBtn = mkatt.makeKey( ivBtn, btnHue, btnSat, buttonScale, buttonScaleCnt, textAdjust, btnTextColor, buttonText, btnOpa, spacingLR, spacingTB);
LinLayBtn.addView(ivBtn);
}
});
任何想法如何处理它?</ p>
谢谢!
答案 0 :(得分:6)
this
是OnClickListener实例。您需要将它传递给Activity类的实例(即外部类)。假设您的外部类被称为MyActivity
,那么您应该将MyActivity.this
传递给ImageView构造函数