簡體   English   中英

單擊“查看全部”按鈕后如何顯示 RecyclerView 項目

[英]How to display RecyclerView items after clicking on "View All" button

我是安卓的初學者。 我正在創建一個應用程序,其中數據將通過 recyclerview 顯示,但我希望只有某些項目應顯示在 recyclerview 中。

但是,當用戶單擊“查看全部”按鈕時,應該只顯示整個項目。 誰能告訴我我該怎么做?

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);
        }
    });

活動詳情.java

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

}

新模型類

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;
}

}

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");
        }  

您可以在類 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;
    }
}

因此,當您單擊“查看全部”時,您將使用構造函數類型 1 調用類 Recycler View Adapter。對於查看受限項目,調用構造函數類型 2,然后使用“limit”變量設置方法getItemCount

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM