从arraylist firebase获取随机对象
Posted
技术标签:
【中文标题】从arraylist firebase获取随机对象【英文标题】:Get random object from arraylist firebase 【发布时间】:2021-07-31 18:01:37 【问题描述】:在 Firebase 中,我需要 Parsing2,其中 1-video、2- 发布日期、3-流派、4-publisher、5-img、6-img2、7-title、8-description、9- developer、10-url链接,11-14 个标签,15 个价格。我需要在随机对象(0,n)中获取title和img
描述获取内容的类
public class Random_game_texture
String title;
String img;
public Random_game_texture(String img, String title)
this.title=title;
this.img=img;
public void setTitle(String title)
this.title = title;
public void setImg(String img)
this.img = img;
public String getTitle()
return title;
public String getImg()
return img;
需要实现从firebase获取数据并做随机方法的随机游戏类
public class Random_game extends AppCompatActivity implements View.OnClickListener
Button random_btn, link_btn;
TextView title;
ImageView img;
DatabaseReference myRef;
ArrayList<Random_game_texture> gamesList;
Random randomGenerator;
@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_random_game);
ImageButton Home = (ImageButton) findViewById(R.id.home);
Home.setOnClickListener(this);
ImageButton Lupa = (ImageButton) findViewById(R.id.lupa);
Lupa.setOnClickListener(this);
ImageButton Calendar = (ImageButton) findViewById(R.id.calendar);
Calendar.setOnClickListener(this);
ImageButton Kubik = (ImageButton) findViewById(R.id.kubik);
Kubik.setOnClickListener(this);
ImageButton Profile = (ImageButton) findViewById(R.id.profile);
Profile.setOnClickListener(this);
random_btn=findViewById(R.id.random_game);
link_btn=findViewById(R.id.link_page);
title=findViewById(R.id.name_random);
img=findViewById(R.id.img_random);
myRef = FirebaseDatabase.getInstance().getReference();
gamesList=new ArrayList<>();
random_btn.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
);
@Override
public void onClick(View v)
switch (v.getId())
case R.id.home:
startActivity(new Intent(this, News.class));
break;
case R.id.lupa:
startActivity(new Intent(this, Games.class));
break;
case R.id.calendar:
startActivity(new Intent(this, Calendar.class));
break;
case R.id.kubik:
startActivity(new Intent(this, Random_game.class));
break;
case R.id.profile:
startActivity(new Intent(this, Profile.class));
break;
【问题讨论】:
【参考方案1】:您的节点已编号,以便更轻松地尝试使用我为您编写的代码。 我的代码说“max”和“min”放置你的第一个和最后一个节点。 也无法从图像中复制和粘贴您的节点名称。希望它对您有用,如果我还不是初学者,请见谅。
random_btn.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
readNodes();
);
//把方法放在onCreate()
外面
private void readNodes()
int range = ("max" - "min") + 1;
int random (int)(Math.random() * range) + "min";
String node = String.valueOf(random);
DatabaseReference ref = myRef.child("Parsing2").child(node);
ref.addValueEventListener(new ValueEventListener()
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot)
String title1 = dataSnapshot.child("title node name").getValue().toString();
String img1 = dataSnapshot.child("img node name").getValue().toString();
Random_game_texture randomObject = new Random_game_texture(img1, title1);
title.setText(randomObject.getTitle());
img.setText(randomObject.getImg());
@Override
public void onCancelled(@NonNull DatabaseError error)
);
【讨论】:
我试过了,我不得不稍微改变一下。它适用于标题,但由于某种原因,图像链接显示在控制台中。谢谢。 @SirGery 如果您的代码中没有任何类型的System.out.print()
,则链接不应出现在控制台上以上是关于从arraylist firebase获取随机对象的主要内容,如果未能解决你的问题,请参考以下文章
Android:使用 ArrayList 从 Firebase 检索对象
java 从Firebase中的Object获取ArrayList
从 Firebase 查询具有在 ArrayList 中找到的子值的对象