2011-09-17 50 views
0

说我有这个代码,它创建一个ImageView并将其放入一个线性布局。在OnClickListener中它提供了 - “构造函数ImageView(new View.OnClickListener(){})未定义”?

而且我有一个是应该,在点击一个onclick监听器,删除旧的ImageView,并用新的替换它。

但奇怪的是它显示 “构造ImageView的(新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); 

    } 
    }); 

任何想法如何处理它?

谢谢!

+0

警告:要定义'ivBtn'两次。 'onClick()'方法中,一次作为字段,另一个作为局部变量。 –

回答

6

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

+0

谢谢你,作品! :) – Roger

相关问题