Получить значение адаптера от адаптера к активности - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть класс адаптера, как показано ниже, с интерфейсом, содержащим прослушиватели onclick.

public interface OnFeedItemClickListener {
    void onCommentsClick(View v, int position);

    void onMoreClick(View v, int position);

    void onProfileClick(View v);
}

В моем классе активности, когда я реализую один из методов, он работает.

@Override
public void onProfileClick(View v) {
    int[] startingLocation = new int[2];
    v.getLocationOnScreen(startingLocation);
    startingLocation[0] += v.getWidth() / 2;
    UserProfileActivity.startUserProfileFromLocation(startingLocation, this);
    overridePendingTransition(0, 0);
}

Iнужна помощь, чтобы получить элемент из адаптера к действию и отобразить его

это мой класс onViewBinder

@Override
public void onBindViewHolder(@NonNull FeedAdapter.CellFeedViewHolder viewHolder, final int position) {
    viewHolder.bindView(feedItems.get(position));


    FeedItem item = feedItems.get(position);

    //Making up the feed
    viewHolder.name.setText(item.getName());

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

Если я правильно понимаю ваш вопрос, вы хотите, чтобы нажатие кнопки object вернулось к вашей активности.В этом случае просто передайте его в обратном вызове, например:

public interface OnFeedItemClickListener {
   void onCommentsClick(View v, FeedItem item);

   void onMoreClick(View v, FeedItem item);

   void onProfileClick(View v, FeedItem item);
}

Таким образом, вместо позиции вы можете напрямую передать объект, связанный с выбранной строкой, и получить / отобразить / сделать то, что вы хотите с желаемыминформация.

0 голосов
/ 27 сентября 2018

Я хочу помочь получить элемент из адаптера к действию и отобразить его

В вашем onBindViewHolder() вы можете получить имя элемента (например) по item.getName()как вы уже делаете.

Это установит имя для вашего viewHolder.name.Таким образом, чтобы получить и установить другие элементы, вам нужно настроить list_item, затем объявить элементы в ViewHolder и затем установить в onBindViewHolder().

Но теперь дело в том, что он должен показать name на предметах в вашем Activity.

...