使用set不会影响带有数据绑定的视图

时间:2017-07-09 16:28:44

标签: android android-layout android-databinding

我正在尝试使用数据绑定更改不同的EditText属性,但它似乎无法正常工作。

custom_edittext.xml:

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
    <data>
        <variable
            name="textVar"
            type="String"/>
    </data>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <EditText
            android:id="@+id/descriptionTextEdit"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentStart="true"
            android:ems="12"
            android:inputType="textMultiLine"
            android:text="@{textVar}"/>
    </RelativeLayout>
</layout>

我的课程扩展了RelativeLayout

public class CustomEditText extends RelativeLayout {
public CustomEditText(Context context) {
        super(context);
        init(context, null);
    }

    public CustomEditText(Context context, AttributeSet attrs) {
        super(context, attrs);
        init(context, attrs);
    }

    public CustomEditText(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init(context, attrs);
    }
}

和我的初学者:

private void init(Context context, AttributeSet attrs){
         View.inflate(context, R.layout.custom_edittext, this);

         CustomEdittextBinding stomEdittextBinding = DataBindingUtil.inflate(LayoutInflater.from(context), R.layout.custom_edittext, null, false);

         Drawable drawableButton = context.getResources().getDrawable(R.drawable.ic_action_name);//context.getResources().getDrawable(R.drawable.ic_action_name);
         customEdittextBinding.setTextVar("new text"); //it should change the text, shouldn't it?
         }

我的主要活动:     @覆盖     protected void onCreate(Bundle savedInstanceState){         super.onCreate(savedInstanceState);         的setContentView(R.layout.activity_main);

    customEditText = findViewById(R.id.custom);
}

并且在activity_main.xml中我添加了我的CustomEditText,但是有一个错误 - 找不到以下类。

<com.example.xxx.app.CustomEditText
        android:id="@+id/custom"
        android:layout_width="344dp"
        android:layout_height="50dp"
        android:paddingLeft="100dp"
        tools:layout_editor_absoluteX="8dp"
        tools:layout_editor_absoluteY="8dp"></com.example.xxx.app.CustomEditText >

1 个答案:

答案 0 :(得分:0)

好的,我在实例化CustomEdittextBinding后添加addView(customEdittextBinding.getRoot());解决了这个问题。