Java 从arraylist firebase获取随机对象
在Firebase中,我需要Parsing2,其中1-视频,2-发布日期,3-流派,4-出版商,5-img,6-img2,7-标题,8-描述,9-开发者,10个url链接,11-14个标签,15个价格。我需要在随机对象(0,n)中获取标题和img 描述要获取的内容的类Java 从arraylist firebase获取随机对象,java,android,firebase,firebase-realtime-database,arraylist,Java,Android,Firebase,Firebase Realtime Database,Arraylist,在Firebase中,我需要Parsing2,其中1-视频,2-发布日期,3-流派,4-出版商,5-img,6-img2,7-标题,8-描述,9-开发者,10个url链接,11-14个标签,15个价格。我需要在随机对象(0,n)中获取标题和img 描述要获取的内容的类 public class Random_game_texture { String title; String img; public Random_game_texture(String img, String title)
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;
}
}}
public class Random\u游戏扩展AppCompatActivity实现View.OnClickListener{
按钮随机链接;
文本视图标题;
图像视图img;
数据库参考myRef;
ArrayList玩家列表;
随机发生器;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u random\u game);
ImageButton Home=(ImageButton)findViewById(R.id.Home);
Home.setOnClickListener(this);
ImageButton Lupa=(ImageButton)findViewById(R.id.Lupa);
Lupa.setOnClickListener(this);
ImageButton日历=(ImageButton)findViewById(R.id.Calendar);
Calendar.setOnClickListener(此);
ImageButton Kubik=(ImageButton)findViewById(R.id.Kubik);
Kubik.setOnClickListener(本);
ImageButton配置文件=(ImageButton)findViewById(R.id.Profile);
Profile.setOnClickListener(此);
random_btn=findViewById(R.id.random_游戏);
link\u btn=findviewbyd(R.id.link\u页面);
title=findviewbyd(R.id.name\u随机);
img=findViewById(R.id.img_随机);
myRef=FirebaseDatabase.getInstance().getReference();
gamesList=newarraylist();
random_btn.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
}
});
}
@凌驾
公共void onClick(视图v){
开关(v.getId()){
案例R.id.home:
startActivity(新意图(this,News.class));
打破
案例R.id.lupa:
startActivity(新意图(这个,Games.class));
打破
案例R.id.日历:
startActivity(新意图(这个,Calendar.class));
打破
案例R.id.kubik:
startActivity(新意图(这个,Random_game.class));
打破
案例R.id.profile:
startActivity(新意图(此,Profile.class));
打破
}
}}
您的节点已编号,因此可以更轻松地使用我为您编写的代码。
其中,我的代码显示“max”和“min”放置第一个和最后一个节点。
也不能从图像中复制和粘贴节点名称。希望它对你有用,如果不行,我还是个初学者
random_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
readNodes();
}
});
//将该方法从onCreate()中删除
我试过了,我不得不改变一下。它可以与标题配合使用,但由于某些原因,图像链接会显示在控制台中。谢谢@如果您的代码上没有任何类型的System.out.print()
,则SirgeryLink不应出现在控制台上
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) {
}
});
}