从StyledAttributes自定义类Android获取字符串

时间:2018-03-20 16:03:27

标签: android android-layout android-studio

我有一个自定义类,扩展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

获取null的答案

编辑:修正错误的链接

0 个答案:

没有答案