Java 如何使recyclerview仅显示一个阵列,具体取决于PerCanage?

Java 如何使recyclerview仅显示一个阵列,具体取决于PerCanage?,java,android-studio,android-recyclerview,Java,Android Studio,Android Recyclerview,我希望一个recyclerview只显示一个数组,但在arraylist中有更多的数组。必须显示的数据不能总是相同的,但它将取决于某些百分比 第一阵型有20%的几率,第二阵型有50%,第三阵型也有50%。并随机显示一个。但当我刷新屏幕时,它会改变 我想我应该做的是为arraylist上的每个数组设置百分比,但我不知道该怎么做,下一步该怎么做 那是我的java文件 公共类Comida扩展AppCompatActivity实现Adapter2.OnRecipeListener{ 私人回收站查看回收

我希望一个recyclerview只显示一个数组,但在arraylist中有更多的数组。必须显示的数据不能总是相同的,但它将取决于某些百分比

第一阵型有20%的几率,第二阵型有50%,第三阵型也有50%。并随机显示一个。但当我刷新屏幕时,它会改变

我想我应该做的是为arraylist上的每个数组设置百分比,但我不知道该怎么做,下一步该怎么做

那是我的java文件


公共类Comida扩展AppCompatActivity实现Adapter2.OnRecipeListener{
私人回收站查看回收站查看1;
列出清单项目;
适配器2适配器;
私人实体2实体1、实体2、实体3;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
requestWindowFeature(窗口。功能\u无\u标题);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_全屏,
WindowManager.LayoutParams.FLAG(全屏);
setContentView(R.layout.activity_comida);
recyclerView1=findViewById(R.id.lv_1);
LinearLayoutManager layoutManager=新的LinearLayoutManager(此);
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
RecycleServiceW1.setLayoutManager(layoutManager);
listItems=new ArrayList();
entidad1=新Entidad2(R.drawable.calabacines_3,“Solomillo a la plancha”,“10分钟”,4,20);
entidad2=新entidad2(R.drawable.patatas_deluxe_Specialiadas_70523_300_150,“Entercot”,“15分钟”,2,50);
entidad3=新的Entidad2(R.drawable.tomate,“汉堡”,“2分钟”,5100);
listItems.add(entidad1);
listItems.add(entidad2);
listItems.add(entidad3);
适配器=新适配器2(列表项,本);
再循环器1.设置适配器(适配器);
adaptor.notifyDataSetChanged();
pickEntidad();
}
@凌驾
公共void OnRecipe(int优先级){
如果(优先级==20){
Intent in=新Intent(这个,Solomillo.class);
星触觉(in);
}
如果(优先级==50){
Intent in=新的Intent(此,Entrecot.class);
星触觉(in);
}
如果(优先级==100){
Intent in=新的Intent(本,Hamburguesa.class);
星触觉(in);
}
}
私有void pickEntidad(){
final int random=new random().nextInt(101);
int priority1=entidad1.getPriority();
int priority2=entidad2.getPriority();
int priority3=entidad3.getPriority();
listItems.clear();
if(随机<优先级1){
listItems.add(entidad1);
}else if(随机<优先级2){
listItems.add(entidad2);

}else if(random据我所知,您希望以不同的显示机会随机显示Entidad列表中的单个Entidad对象

例如:在Entidad对象上创建一个名为Priority的整数字段。将第一个Entidad的优先级设置为50,第二个设置为200,第三个设置为350。创建以下方法以根据优先级随机选取。(创建Entidad对象后,将其引用保存在mainactivity上。)

编辑:Entidad.java

public class Entidad {

private int imgFoto;
private String titulo;
private String tiempo;
private int ratingBar;
private int colorfondo;
private int priority;

public Entidad(int imgFoto, String titulo, String tiempo, int ratingBar, int colorfondo, int priority) {
    this.imgFoto = imgFoto;
    this.titulo = titulo;
    this.tiempo = tiempo;
    this.ratingBar = ratingBar;
    this.colorfondo = colorfondo;
    this.priority = priority;
}

public int getRatingBar() {
    return ratingBar;
}

public int getPriority() {
    return priority;
}

public int getImgFoto() {
    return imgFoto;
}

public String getTitulo() {
    return titulo;
}

public String getTiempo() {
    return tiempo;
}

public int getRating() { return ratingBar; }

public int getColorfondo() {
    return colorfondo;
}
}
编辑2:getEntidad()的使用

公共类Comida扩展AppCompatActivity实现Adapter.OnRecipeListener{
私人回收站查看回收站查看1;
列出清单项目;
适配器适配器;
私人实体实体1、实体2、实体3;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_comida);
recyclerView1=findViewById(R.id.lv_1);
LinearLayoutManager布局管理器=新建
直线布局经理(本公司);
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
RecycleServiceW1.setLayoutManager(layoutManager);
listItems=new ArrayList();
//初始化entidad对象并保留它们的引用以在pickEntidad()方法中使用
entidad1=新Entidad(R.drawable.calabacines_3,“Solomillo a la plancha”,“10分钟”,4,R.drawable.color_carnes,50);
entidad2=新Entidad(R.drawable.patatas_deluxe_Speciadas_70523_300_150,“Entercot”,“15分钟”,2,R.drawable.color_carnes,200);
entidad3=新Entidad(R.drawable.tomate,“汉堡”,“2分钟”,5,R.drawable.color_carnes,350);
listItems.add(entidad1);
listItems.add(entidad2);
listItems.add(entidad3);
适配器=新适配器(列表项,本);
再循环器1.设置适配器(适配器);
adaptor.notifyDataSetChanged();
//调用pickEntidad()随机选择一个entidad并显示在列表中
pickEntidad();
}
@凌驾
公共空间(内部位置){
如果(位置==0){
Intent in=新Intent(这个,Solomillo.class);
星触觉(in);
}
}
私有void pickEntidad(){
//生成0-350之间的随机整数值
final int random=new random().nextInt(351);
//从创建的Entidad对象中获取优先级。
int priority1=entidad1.getPriority();
int priority2=entidad2.getPriority();
int priority3=entidad3.getPriority();
listItems.clear()
//根据优先级随机选择一个
if(随机<优先级1){
listItems.add(entidad1)
}else if(随机<优先级2){
listItems.add(entidad2)

}else if(random据我所知,您希望以不同的显示机会随机显示Entidad列表中的单个Entidad对象

例如:在Entidad对象上创建一个名为Priority的整数字段。将第一个Entidad的优先级设置为50,第二个设置为200,第三个设置为350。创建以下方法以根据优先级随机选取。(创建Entidad对象后,将其引用保存在mainactivity上。)

编辑:Entidad.java

public class Entidad {

private int imgFoto;
private String titulo;
private String tiempo;
private int ratingBar;
private int colorfondo;
private int priority;

public Entidad(int imgFoto, String titulo, String tiempo, int ratingBar, int colorfondo, int priority) {
    this.imgFoto = imgFoto;
    this.titulo = titulo;
    this.tiempo = tiempo;
    this.ratingBar = ratingBar;
    this.colorfondo = colorfondo;
    this.priority = priority;
}

public int getRatingBar() {
    return ratingBar;
}

public int getPriority() {
    return priority;
}

public int getImgFoto() {
    return imgFoto;
}

public String getTitulo() {
    return titulo;
}

public String getTiempo() {
    return tiempo;
}

public int getRating() { return ratingBar; }

public int getColorfondo() {
    return colorfondo;
}
}
编辑2:getEntidad()的使用

公共类Comida扩展AppCompatActivity实现Adapter.OnRe