2017-08-16 36 views
0

有没有办法可以在xml数据绑定框架Android中声明内置数据类型?
例如像这样:ANDROID可以在xml数据绑定中声明内置数据类型

<data> 

<import type="android.text.Html"/> 

<variable 
    name="isDataFetched" 
    type="Boolean"/> 
    </data> 

感谢。

+0

是的,可以。看到这[链接](https://developer.android.com/topic/libraries/data-binding/index.html#variables)。 –

回答

0

我使用这样的

<layout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto"> 
    <data> 
     <variable name="backgroundColor" 
        type="Integer"/> 
     <variable name="editTextColor" 
        type="Integer"/> 
    </data> 
<LinearLayout 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    app:backgroundResource="@{backgroundColor!=0?backgroundColor:android.R.color.black}" 
    tools:context="ds.gobillsale.FormActivity"> 
    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_margin="@dimen/margin_10" 
     android:padding="@dimen/margin_5" 
     > 
    <ScrollView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:fitsSystemWindows="true" 
     android:fillViewport="true"> 
     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical"> 
      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content"> 
<TextView 
    android:layout_width="0dp" 
    android:layout_weight="1" 
    android:layout_height="wrap_content" 
    android:padding="@dimen/activity_horizontal_margin" 
    android:text="Date" 
    android:textColor="@{editTextColor!=0?context.getResources().getColor(editTextColor):android.R.color.black}" 
    android:textSize="18sp" 
    android:drawableLeft="@drawable/calander" 
    android:drawablePadding="@dimen/margin_10" 
    android:id="@+id/ed_date" 
    android:background="@drawable/ed_background"/> 
      <TextView 
       android:layout_width="0dp" 
       android:layout_weight=".2" 
       android:layout_height="wrap_content" 
       android:layout_centerInParent="true" 
       android:gravity="center" 
       android:textColor="@android:color/holo_blue_bright" 
       android:layout_alignParentRight="true" 
       /> 
      </LinearLayout> 
      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="@dimen/margin_20" 
       android:orientation="horizontal" 
       > 

       <EditText 
        android:id="@+id/ed_seller_name" 
        android:layout_width="0dp" 
        android:layout_height="wrap_content" 
        android:layout_weight="1" 
        android:background="@drawable/ed_background" 
        android:hint="Seller Name" 
        android:drawableLeft="@drawable/seller_name" 
        android:drawablePadding="@dimen/margin_10" 
        android:imeOptions="actionNext" 
        android:inputType="text" 
        android:maxLines="1" 
        android:padding="@dimen/activity_horizontal_margin" 
        android:textColor="@{editTextColor!=0?context.getResources().getColor(editTextColor):android.R.color.black}" 
        android:textColorHint="@color/gray" 
        android:textSize="18sp" 
        /> 

       <TextView 
        android:layout_width="0dp" 
        android:layout_weight=".2" 
        android:layout_height="wrap_content" 
        android:layout_centerInParent="true" 
        android:text="1223" 
        android:gravity="center" 
        android:textColor="@android:color/white" 
        android:layout_alignParentRight="true" 
        android:id="@+id/seller_name_txt_limit" 
        /> 
      </LinearLayout> 
     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="@dimen/margin_20" 
      > 
      <EditText 
       android:id="@+id/ed_seller_email" 
       android:layout_width="0dp" 
       android:layout_weight="1" 
       android:layout_height="wrap_content" 
       android:background="@drawable/ed_background" 

       android:drawableLeft="@drawable/seller_email" 
       android:drawablePadding="@dimen/margin_10" 
       android:hint="Seller Email" 
       android:textColorHint="@color/gray" 

       android:imeOptions="actionNext" 
       android:inputType="textEmailAddress" 
       android:maxLines="1" 
       android:padding="@dimen/activity_horizontal_margin" 
       android:textColor="@{editTextColor!=0?context.getResources().getColor(editTextColor):android.R.color.black}" 
       android:textSize="18sp"/> 
     <TextView 
      android:layout_width="0dp" 
      android:layout_weight=".2" 
      android:layout_height="wrap_content" 
      android:layout_centerInParent="true" 
      android:gravity="center" 
      android:textColor="@android:color/white" 
      android:layout_alignParentRight="true" 
      android:id="@+id/seller_email_txt_limit" 
      /> 
    </LinearLayout> 
     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="@dimen/margin_20" 
      > 
      <EditText 
       android:id="@+id/ed_pur_name" 
       android:layout_width="0dp" 
       android:layout_weight="1" 
    android:layout_height="wrap_content" 
    android:padding="@dimen/activity_horizontal_margin" 
    android:hint="Purchaser Name" 
    android:inputType="text" 
    android:maxLines="1" 

    android:imeOptions="actionNext" 
       android:textColorHint="@color/gray" 

       android:textColor="@{editTextColor!=0?context.getResources().getColor(editTextColor):android.R.color.black}" 
    android:textSize="18sp" 
    android:drawableLeft="@drawable/seller_name" 
    android:drawablePadding="@dimen/margin_10" 
       android:background="@drawable/ed_background" 
       /> 
    <TextView 
     android:layout_width="0dp" 
     android:layout_weight=".2" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" 
     android:text="1223" 
     android:gravity="center" 
     android:textColor="@android:color/white" 

     android:layout_alignParentRight="true" 
     android:id="@+id/pur_name_txt_limit" 
     /> 
</LinearLayout> 
      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="@dimen/margin_20" 

       > 
    <EditText 
       android:id="@+id/ed_pur_email" 
    android:layout_width="0dp" 
       android:layout_weight="1" 
    android:layout_height="wrap_content" 
    android:padding="@dimen/activity_horizontal_margin" 
    android:inputType="textEmailAddress" 
    android:maxLines="1" 
       android:background="@drawable/ed_background" 
       android:imeOptions="actionDone" 
    android:hint="Purchaser Email" 
       android:textColor="@{editTextColor!=0?context.getResources().getColor(editTextColor):android.R.color.black}" 
       android:textColorHint="@color/gray" 
    android:textSize="18sp" 
    android:drawableLeft="@drawable/seller_email" 
    android:drawablePadding="@dimen/margin_10" 
       /> 
    <TextView 
     android:layout_width="0dp" 
     android:layout_weight=".2" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" 
     android:text="1223" 
     android:gravity="center" 

     android:textColor="@android:color/white" 

     android:layout_alignParentRight="true" 
     android:id="@+id/pur_email_txt_limit" 
     /> 
</LinearLayout> 

    </LinearLayout> 
    </ScrollView> 

<ImageView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/img_next" 
    android:layout_centerInParent="true" 
    android:layout_alignParentBottom="true" 

    android:src="@drawable/next_arrow"/> 
     <ImageView 
    android:layout_width="60dp" 
    android:layout_height="60dp" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentBottom="true" 

    android:src="@drawable/watermark_logo"/> 

    </RelativeLayout> 

</LinearLayout> 
</layout> 

和编程访问它在我的onCreate方法

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     getWindow().requestFeature(Window.FEATURE_ACTION_BAR); 

ActivityFormBinding binding= DataBindingUtil.setContentView(this,R.layout.activity_form); 
    binding.setEditTextColor(R.color.green); 
}