Предупреждение адаптера привязки Android DataBinding

Я выполнил документацию по привязке данных для Custom Binding Adapter для загрузки изображений с официального сайта разработчиков Android: http://developer.android.com/tools/data-binding/guide.html

После успешного компиляции кода я получаю предупреждение, которое:

Warning:Application namespace for attribute bind:imageUrl will be ignored. 

Мой код выглядит следующим образом:

 @BindingAdapter({"bind:imageUrl"}) public static void loadImage(final ImageView imageView, String url) { imageView.setImageResource(R.drawable.ic_launcher); AppController.getUniversalImageLoaderInstance().displayImage(url, imageView); } 

Почему это предупреждение генерируется?

Скриншот также прилагается … Введите описание изображения здесь

Solutions Collecting From Web of "Предупреждение адаптера привязки Android DataBinding"

Я считаю, что пространство имен действительно игнорируется в аннотации BindingAdapter . Предупреждение возникает, если вы используете какой-либо префикс пространства имен, независимо от того, совпадает ли он с используемым в вашем макете или нет. Если вы пропустили пространство имен, вот так:

 @BindingAdapter({"imageUrl"}) 

… предупреждение не происходит.

Я подозреваю, что существует предупреждение о том, что пространство имен удаляется до того, как строка будет использоваться в качестве ключа в реализации аннотации. Что имеет смысл, когда вы рассматриваете макеты, свободно объявлять любые пространства имён, например app: или bind: или foo: и аннотация должна работать во всех этих случаях.

Попробуй, работай для меня !. Я надеюсь это тебе поможет. Простой способ изменить ресурс изображения без привязки адаптера.

 <ImageButton ... android:id="@+id/btnClick" android:onClick="@{viewModel::onClickImageButton}" android:src="@{viewModel.imageButton}" /> 

И модельный класс модели:

 public ObservableField<Drawable> imageButton; private Context context; //Constructor public MainVM(Context context) { this.context = context; imageButton = new ObservableField<>(); setImageButton(R.mipmap.image_default); //set image default } public void onClickImageButton(View view) { setImageButton(R.mipmap.image_change); //change image } private void setImageButton(@DrawableRes int resId){ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { imageButton.set(context.getDrawable(resId)); }else{ imageButton.set(context.getResources().getDrawable(resId)); } }