2016-03-01 5 views
1

Я хочу обновить текст нажатием кнопки после щелчка.Обновить текст кнопки после нажатия кнопки

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

<Button 
android:id="@+id/like" 
android:text= "@string/like" 
android:drawableTop="@drawable/like"/> 

<string name="like">Likes: </string>

Так что в моем onClick() методе этой кнопки я использую like.setText("Likes: " + product.getLikes()); для того, чтобы обновить текст:

Button like = (Button) v.findViewById(R.id.like);

like.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       like(product); 
       like.setText("Likes: " + product.getLikes()); 
      } 
     }); 

В like() метод действительно работает - я проверил что. Метод product.getLikes() возвращает правильное значение. Однако кнопка остается неизменной. Я не могу понять, в чем проблема.

UPDATE: Я заметил, что сам текст обновления один раз я прокручивать вниз к другим элементам и снова ....

+1

Не могли бы вы поделиться больше кода (как ваш метод OnClick) – W0rmH0le

+0

Вы хотите обновить TextView и вы вызываете ссылку на кнопку. Ваш код показывает, что ваше имя кнопки «нравится», и вы вызываете setText() для этого объекта? Пожалуйста, разместите весь код и название вашего текстового вида. – Talha

+0

Вместо "like.setText (...)" use this: "((Button) v) .setText (...)" Таким образом, вы можете, по крайней мере, убедиться, что обновляете нажатый View. – 0X0nosugar

ответ

-1

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

String mlikes= product.getLikes().toString(); 
like.setText("Likes: " + mlikes);` 
+0

Я уже пробовал это. Дело в том, что когда я впервые открываю фрагмент с продуктом в своем приложении, он показывает количество понравившихся, как это должно быть, только когда я хочу добавить подобное, нажав кнопку, он не обновляет его. – Johanna

+0

использование TextView вместо кнопки – Dayvon

+0

не работало печально ... – Johanna

-1

Попробуйте это.

final Button btn = (Button)findViewById(R.id.btn); 
    final Handler handler = new Handler(){ 
     @Override 
     public void handleMessage(Message msg) { 
      btn.setText("new text"); 
     } 
}; 


btn.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
    handler.sendEmptyMessage(0); 
    } 
}); 
+1

Мне нравятся Handlers. Но, пожалуйста, объясните мне: почему я должен пойти в почтовое отделение и отправить письмо в свой дом, чтобы сообщить читателю (= мне) выключить свет, если я могу просто выключить свет? Или в этом случае: если мой коммутатор, похоже, сломан, что будет улучшено путем написания сообщения? – 0X0nosugar

+0

обработчик работает для другой проблемы в фрагменте - спасибо за это Но для этой проблемы он ничего не делает. Однако я заметил, что он обновляется, когда я прокручиваю вниз и снова ... – Johanna