Android двухстороннее связывание данных с onclick () не работает

1

Я пытаюсь реализовать Android двухстороннюю привязку данных в моем коде. Я не могу получить событие onclick для текстового представления, которое я использовал для двухстороннего связывания данных для его текста.

пс:

  1. Я включил привязку данных
  2. Я также установил все переменные для привязки

макет XML

        <TextView
                    android:id="@+id/likes"
                    android:clickable="true"
                    android:onClick="@{clickHandler::onClickEvents}"
                    android:text='@= 
 {com.coffeeshots.app.foodieapp.utils.Converter.convertIntToString(food.likes)}'
     </TextView>

'

код привязки данных

<data>
    <variable 
       name="food" 
       type="com.coffeeshots.app.foodieapp.model.Food"/>

    <import type="com.coffeeshots.app.foodieapp.utils.Converter"/>

    <variable 
       name="clickHandler" 
       type="com.coffeeshots.app.foodieapp.utils.ClickHandler"/>
</data>

метод onclick

 public void onClickEvents(View view) {

          switch(view.getId()){
            case R.id.likes:
                if(!likesGiven){
                    likesGiven = true;
                    binding.likes.setText("1");
                    binding.dislikes.setClickable(false);
             }
                break;

          }

Я думаю, что проблема в том, как я раздуваю макет, Может кто-нибудь помочь мне здесь???

  LayoutInflater layoutInflater = getLayoutInflater();

     binding= DataBindingUtil.inflate(layoutInflater,R.layout.activity_add_food,null,false);

    setContentView(binding.getRoot());
Теги:
onclick
android-databinding

2 ответа

0

Да, ваш раздувание неверно. Делай так:

ActivityAddFoodBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_add_food);
binding.setClickHandler(new ClickHandler());

Вы также можете найти соответствующий официальный пример здесь: https://developer.android.com/topic/libraries/data-binding/expressions#binding_data

0

Попробуй это:

android:onClick="@{(view)-> clickHandler.onClickEvents(view)}"
  • 0
    что будет посмотреть здесь?
  • 0
    объект view будет содержать параметры Textview
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню