2016-11-21 10 views
-1

ImageViewProductオブジェクトにいくつかの変数を格納できるように、ImageViewクラスを拡張する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クラス.. setOnClickListenerメソッド内ImageViewProductの変数を取得することはできません

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)に変更しようとしましたが、エラーが発生しました。それを修正するには?

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

Vへ

答えて

1

ImageViewProductにこれを適用する場合は、vImageViewProductにキャストできます。

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()); 

は、ビューの変数です。 isToUploadはivProductクラスのメソッドです

+0

私は多くのImageViewProductオブジェクトを持っている場合、それはまだ動作しているのですか? – zihadrizkyef

関連する問題