在OnClickListener中,它给出了 - “构造函数ImageView(new View.OnClickListener(){})未定义”?

时间:2011-09-17 13:53:25

标签: android

假设我有这个代码,它会创建一个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>

谢谢!

1 个答案:

答案 0 :(得分:6)

ImageView构造函数中的

this是OnClickListener实例。您需要将它传递给Activity类的实例(即外部类)。假设您的外部类被称为MyActivity,那么您应该将MyActivity.this传递给ImageView构造函数