[英]Error: data binding does not exist - Android
I am using from data Binding
in my project but get me bellow error : 我在项目中使用
data Binding
,但出现以下错误:
Here is my model CProgressBar.java
: 这是我的模型
CProgressBar.java
:
public class CProgressBar extends BaseObservable {
private boolean visibility;
@Bindable
public boolean isVisibility() {
return visibility;
}
public void setVisibility(boolean visibility) {
this.visibility = visibility;
notifyPropertyChanged(BR.visibility);
}
}
Here is my activity_start.xml
: 这是我的
activity_start.xml
:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:custom="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<variable
name="showNews"
type="ir.jmostafa.appportalmostafa.start.models.ShowNews" />
<variable
name="mVisible"
type="ir.jmostafa.appportalmostafa.start.models.CProgressBar" />
</data>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="ir.jmostafa.appportalmostafa.start.StartActivity">
<com.daimajia.slider.library.SliderLayout
android:id="@+id/slider_image"
android:layout_width="match_parent"
android:layout_height="200dp"
custom:auto_cycle="true"
custom:indicator_visibility="visible"
custom:pager_animation="Accordion"
custom:pager_animation_span="1100" />
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerStartActivity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/slider_image"
android:scrollbars="vertical" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/recyclerStartActivity">
<ProgressBar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:visibility="@{@bool/mVisible.visibility}" />
<TextView
android:id="@+id/txtFirstNews"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="@{showNews.firstNewsTitle}" />
<TextView
android:id="@+id/txtSecondNews"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/txtFirstNews"
android:layout_centerInParent="true"
android:text="@{showNews.seconNewsTitle}" />
</RelativeLayout>
</RelativeLayout>
</layout>
I wrote in StartActvity.java
: 我在
StartActvity.java
写道:
activityStartBinding = DataBindingUtil.setContentView(this, R.layout.activity_start);
...
CProgressBar cProgressBar = new CProgressBar();
cProgressBar.setVisibility(true);
activityStartBinding.setMVisible(true);
And here is my AdapterStartActivity.java
: 这是我的
AdapterStartActivity.java
:
public class AdapterStartActivity extends RecyclerView.Adapter<AdapterStartActivity.ViewHolder> {
private ListItemActivityStartBinding binding;
private List<String> listTitle;
private Context context;
public AdapterStartActivity(Context context, List<String> listTitle) {
this.listTitle = listTitle;
this.context = context;
}
public static class ViewHolder extends RecyclerView.ViewHolder {
public ViewHolder(View v) {
super(v);
}
}
@Override
public AdapterStartActivity.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.list_item_activity_start, parent, false);
binding = DataBindingUtil.bind(view);
ViewHolder viewHolder = new ViewHolder(view);
return viewHolder;
}
@Override
public void onBindViewHolder(ViewHolder Vholder, int position) {
binding.setListItems(listTitle.get(position));
binding.setClickListener(this);
binding.getRoot().setTag(position);
}
@Override
public int getItemCount() {
return listTitle.size();
}
public void onCardClick(View view, String listItems) {
Log.i("SADASSDASDAS", " A " + listItems + " B " + view.getTag());
}
}
And here is my list items of recyclerView
: 这是我的
recyclerView
列表项:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="listItems"
type="String" />
<variable
name="clickListener"
type="ir.jmostafa.appportalmostafa.adapters.AdapterStartActivity" />
</data>
<android.support.v7.widget.CardView
android:id="@+id/card_lstItemStart"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="3dp"
android:onClick="@{(v)->clickListener.onCardClick(v, listItems)}"
card_view:cardCornerRadius="7dp"
card_view:cardElevation="7dp"
card_view:cardMaxElevation="7dp"
card_view:contentPadding="0dp">
<TextView
android:id="@+id/txtTitles"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:gravity="center"
android:padding="10dp"
android:text="@{listItems}"
android:textColor="#000000"
android:textSize="20dp"
android:textStyle="bold" />
</android.support.v7.widget.CardView>
</layout>
You visibility value should be VISIBLE
, INVISIBLE
or GONE
. 您的可见性值应为
VISIBLE
, INVISIBLE
或GONE
。 In that case 在这种情况下
android:visibility="@{mVisible.visibility ? View.VISIBLE : View.GONE}"
and import View
in your xml 并在XML中导入
View
<import type="android.view.View"/>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.