SimpleDraweeView无法强制转换为扩展ImageView的自定义View

时间:2016-12-14 16:58:08

标签: java android

我需要在ImageView对象中保存一个数字,以便稍后在我的代码中访问它。这就是为什么我创建了一个扩展ImageView的自定义类:

public class SliderView extends ImageView {

    private int position;

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

    public SliderView(Context context, AttributeSet attrs)
    {
        super(context, attrs);
    }
    public SliderView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    public void setViewPosition(int pos){
        this.position = pos;
    }

    public int getPosition(){
        return position;
    }
}

这是我在.xml中的SimpleDraweeView对象:

<com.facebook.drawee.view.SimpleDraweeView
    android:id="@+id/bottomslider"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
     />

我想要实现的是:

final SliderView mediaImage = (SliderView) convertView.findViewById(R.id.bottomslider);

当我尝试运行上面的代码时,我收到此错误:

  

java.lang.ClassCastException:   com.facebook.drawee.view.SimpleDraweeView无法转换为   android.custom.SliderView

如果我使用ImageView代替SliderView,一切正常,但我没有我需要的功能。有没有解决方法?

1 个答案:

答案 0 :(得分:0)

public class SliderView extends ImageView {

private int position;

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

public SliderView(Context context, AttributeSet attrs)
{
    super(context, attrs);
}
public SliderView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
}

public SliderView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
    super(context, attrs, defStyleAttr, defStyleRes);
}

public void setViewPosition(int pos){
    this.position = pos;
}

public int getPosition(){
    return position;
}

}

试试这个,让我知道这是否有效