Как отобразить элементы RecyclerView после нажатия на кнопку «Просмотреть все» - PullRequest
1 голос
/ 13 марта 2020

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

Однако, когда пользователь нажимает кнопку «Просмотреть все», отображаются только целые элементы. Может кто-нибудь сказать мне, как я могу это сделать?

viewtext.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(getContext(), AppviewActivity.class);
            intent.putExtra("mylist","newmodel");
            getContext().startActivity(intent);
        }
    });

DetailsActivity. java

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_appview);
    ArrayList<String> mylist = (ArrayList<String>) getIntent().getSerializableExtra("mylist");

}

NewModel class

public class NewModel  {
Drawable sociallogo;
String socailtext;
String href;
public NewModel(Drawable sociallogo, String socailtext, String href){
    this.sociallogo = sociallogo;
    this.socailtext= socailtext;
    this.href = href;

}
public Drawable getSociallogo(){
    return sociallogo;
}
public String getSocailtext(){
    return socailtext;
}
public String getHref(){
    return href;
}

}

Ответы [ 2 ]

0 голосов
/ 13 марта 2020

Вы можете добавить параметр в класс Recycler View Adapter, чтобы установить ограничение данных. Это функция для отображения представления переработчика данных с предельными данными. Вы создаете 2 конструктора в этом классе.

public class ArrayDataAdapter extends RecyclerView.Adapter<ArrayDataAdapter.ArrayDataViewHolder> {
    private int limit = 0;
    private ArrayData<ModelData> listData;

    // Constructor 1: To display all data
    public class ArrayDataAdapter(ArrayList<ModelData> listData) {
       this.listData = listData;
       this.limit = listData.size;
    }

    // Constructor 2: To display data with limit data
    public class ArrayDataAdapter(ArrayList<ModelData> listData, int limit) {
       this.listData = listData;
       this.limit = limit;
    }
}

Итак, когда вы нажимаете «Просмотреть все», вы вызываете класс Recycler View Adapter с конструктором типа 2. Наконец, вы устанавливаете метод getItemCount с переменной «limit».

0 голосов
/ 13 марта 2020

getItemCount метод работает для ограничения.

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

private final int limit = 10;


 @Override
public int getItemCount() {
    if(arrayList.size() > limit){
        return limit;
    }
}

При нажатии на кнопку «Просмотреть все», затем перенаправить к новому действию и связать данные в recyclerview адаптере:

Если вы свяжетесь с приведенным ниже кодом, то он показывает все данные.

@Override
    public int getItemCount() {
        if(arrayList.size() > limit){
            return ad_list.size();
        }
    }

Реализуйте свой класс модели, как показано ниже:

public class NewModel implements Serializable {

Теперь передайте свои данные с кодом ниже:

viewtext.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(getContext(), AppviewActivity.class);
            intent.putExtra("mylist", newmodel);
            getContext().startActivity(intent);
        }
    });

Получите ваши данные в новом действии как:

Bundle bundle = getIntent().getExtras();
        if (bundle != null) {
ArrayList<NewModel> mylist = (ArrayList<NewModel>) bundle.getSerializable("mylist");
        }  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...