2016-11-21 61 views
-1

我創建了ImageViewProduct類,它正在擴展ImageView類,因此我可以將一些變量存儲在ImageViewProduct對象中。但我不能讓ImageViewProduct的變量setOnClickListener方法裏面..擴展對象並更改方法參數

ImageViewProduct類:

public class ImageViewProduct extends ImageView { 
    boolean toUpload = false; 

    public ImageViewProduct(Context context) { 
     super(context); 
    } 

    public void setToUpload(boolean toUpload) { 
     this.toUpload = toUpload; 
    } 

    public boolean isToUpload() { 
     return toUpload; 
    } 
} 

MainActivity類別:

ImageViewProduct ivProduct = new ImageViewProduct(this); 
ivProduct.setToUpload(true) 
ivProduct.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(final View v) { 
     Log.i("zihad", "is to upload : "+v.isToUpload()); 
    } 
}; 

內onClickListener日誌是錯誤cannot resolve method 'isToUpload()'。我已嘗試將onClick(final View v)更改爲onClick(final ImageViewProduct v),但發生錯誤。如何解決它?

回答

1

如果您只將此應用於ImageViewProduct,那麼您可以將v轉換爲ImageViewProduct

public void onClick(final View v) { 
    ImageViewProduct productView = (ImageViewProduct) v; 
    Log.i("zihad", "is to upload : "+productView.isToUpload()); 
} 

More info on casting at this QnA.

0

變化

Log.i("zihad", "is to upload : "+v.isToUpload()); 

Log.i("zihad", "is to upload : "+ivProduct .isToUpload()); 

v是查看的變量。 isToUpload是ivProduct類的一種方法

+0

是它仍然有效,如果我有很多ImageViewProduct對象? – zihadrizkyef