xxx.setTag(java.lang.Object)' on a null object reference
09-09 09:20:28.820 5124 5124 E AndroidRuntime: at com.sinochem.argcx.sample.databinding.TstBindingImpl.<init>(TstBindingImpl.java:33)
attrs.xml
<declare-styleable name="Plant_Input">
<attr name="test" format="string|reference" />
</declare-styleable>
@BindingMethods({
@BindingMethod(
type = TFun.class,
attribute = "tst",
method = "setLeft1Text")
})
public class TFun extends LinearLayout {
public String left1Text;
public void setLeft1Text(String left1Text) {
this.left1Text = left1Text;
if (mTest != null) {
mTest.setText(left1Text);
}
}
public void tryParse(Context context, AttributeSet attrs) {
if (attrs == null) {
return;
}
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.Plant_Input);
String left1Text = a.getString(R.styleable.Plant_Input_test);
if (mTest1 != null) {
mTest1.setText(left1Text);
}
a.recycle();
}
//==============问题原因==============
public String tag;
@Override
public String getTag() {
return TextUtils.isEmpty(tag) ? "" : tag;
}
//================================
public TFun(Context context) {
super(context);
init();
}
....
}
<com.sinochem.argcx.sample.TFun
android:id="@+id/TFun"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:test="你好啊啊"
app:tst="@{data.name}" />
解决方案
1.setTag方法去掉,换个方法用
网友评论