我有一个自定义类,扩展android.support.v7.widget.AppCompatImageView
我希望在构建期间从XML中捕获自定义字符串值。
我遵循this最高回答,一切都像魅力一样编译但是当我尝试访问我的自定义值时,我得到了Null。
这是我的自定义类
public class CustomImageView extends android.support.v7.widget.AppCompatImageView {
private Context context = null;
private AttributeSet attrs = null;
public CustomImageView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
this.context = context;
this.attrs = attrs;
TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.CustomImageView);
String e = ta.getString(R.styleable.CustomImageView_customUrl);
System.out.print(e) // e is null
ta.recycle();
}
}
这是我的activity.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.custom.customView.customImageView
android:id="@+id/image"
android:src="@mipmap/ic_launcher_round"
android:alpha="1"
app:customUrl="http://google.fr"/>
...
attrs.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="CustomImageView">
<attr name="customUrl" format="string" />
</declare-styleable>
</resources>
我理解可能有很多关于类似或伪类似案例的答案,但我无法找到任何关于从getString
编辑:修正错误的链接