[英]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.