2016-11-25 1 views
1

Je veux changer la description dans le fullWidthDetailsOverviewRowPresenter lorsque je clique sur l'action button, comment le faire? Je peux changer les données, mais comment rafraîchir le view?Android TV comment changer les détailsFragment données lorsque je clique sur le bouton d'action?

enter image description here

Par exemple, lorsque je clique sur « ACHETER 9,99 $ », texte dans la zone rouge va changer.

+1

Pourriez-vous fournir plus de détails avec du code ou une capture d'écran, car cette description n'est pas suffisante pour comprendre vos besoins. –

Répondre

0

Vous devez ajouter cette ligne:

detailsOverviewRow.setItem(newItem);

dans votre DetailsFragment, où vous pouvez avoir quelque chose comme ceci:

 

    private DetailsOverviewRow detailsOverviewRow; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     ... 
     detailsOverviewRow = new DetailsOverviewRow(oldItem); 
     SectionDetailsPresenter detailsPresenter = 
       new SectionDetailsPresenter(new SectionDetailsDescriptionPresenter()); 

     detailsPresenter.setOnActionClickedListener(new OnActionClickedListener() { 
      @Override 
      public void onActionClicked(Action action) { 
       if (action.getId() == ACTION_BUY) { 
        Object newItem = oldItem; 
        newItem.setDescription("new description"); 
        detailsOverviewRow.setItem(newItem); 
       } 
      } 
     }); 
    } 

Le newItem est le oldItem utilisé pour créer une instance de DetailsOverviewRow, mais avec l'attribut description modifié.

Une fois que vous avez défini un nouvel élément pour votre DetailsOverviewRow, le présentateur de description (SectionDetailsDescriptionPresenter dans cet exemple) sera appelé à nouveau, et il définit l'attribut de description newItem dans la zone rouge que vous demandez.

+0

Merci. Cela fonctionne. – zhangkaiyue