Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用firebase数据库在recyclerview中打开新活动_Java_Android - Fatal编程技术网

Java 如何使用firebase数据库在recyclerview中打开新活动

Java 如何使用firebase数据库在recyclerview中打开新活动,java,android,Java,Android,我正在安卓工作室创建一个菜谱应用程序,包括类别(鸡肉、猪肉、牛肉等)和子类别。但我仍然不知道如何在单击类别时为我的子类别打开新活动,而不传递相同的数据。顺便说一句,我使用recyclerview和firebase作为我的数据库。希望有人能帮忙!谢谢 MainActivity.class 公共类MainActivity扩展了AppCompatActivity{ RecyclerView recyclerView; MainAdapter mainAdapter; @Override prote

我正在安卓工作室创建一个菜谱应用程序,包括类别(鸡肉、猪肉、牛肉等)和子类别。但我仍然不知道如何在单击类别时为我的子类别打开新活动,而不传递相同的数据。顺便说一句,我使用recyclerview和firebase作为我的数据库。希望有人能帮忙!谢谢

MainActivity.class

公共类MainActivity扩展了AppCompatActivity{

RecyclerView recyclerView;
MainAdapter mainAdapter;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    recyclerView = (RecyclerView)findViewById(R.id.recView);
    recyclerView.setLayoutManager(new LinearLayoutManager(this));

    FirebaseRecyclerOptions<MainModel> options =
            new FirebaseRecyclerOptions.Builder<MainModel>()
                    .setQuery(FirebaseDatabase.getInstance().getReference().child("category"), MainModel.class)
                    .build();

    mainAdapter = new MainAdapter(options);
    recyclerView.setAdapter(mainAdapter);
}

@Override
protected void onStart() {
    super.onStart();
    mainAdapter.startListening();
}

@Override
protected void onStop() {
    super.onStop();
    mainAdapter.stopListening();
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    getMenuInflater().inflate(R.menu.search,menu);
    MenuItem item = menu.findItem(R.id.search);
    SearchView searchView = (SearchView)item.getActionView();

    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String query) {
            txtSearch(query);
            return false;
        }

        @Override
        public boolean onQueryTextChange(String query) {
            txtSearch(query);
            return false;
        }
    });

    return super.onCreateOptionsMenu(menu);
}

private void txtSearch(String str)
{
    FirebaseRecyclerOptions<MainModel> options =
            new FirebaseRecyclerOptions.Builder<MainModel>()
                    .setQuery(FirebaseDatabase.getInstance().getReference().child("category").orderByChild("name").startAt(str).endAt(str+"~"), MainModel.class)
                    .build();

    mainAdapter = new MainAdapter(options);
    mainAdapter.startListening();
    recyclerView.setAdapter(mainAdapter);
}

}

将此添加到适配器的OnBindviewHolder方法中

 context = holder.itemView.getContext();

holder.itemView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent i = new Intent(context, YourActivity.class);
        context.startActivity(i);
    }
});
String name,description,image;

MainModel()
{

}

public MainModel(String name, String description, String image) {
    this.name = name;
    this.description = description;
    this.image = image;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getDescription() {
    return description;
}

public void setDescription(String description) {
    this.description = description;
}

public String getImage() {
    return image;
}

public void setImage(String image) {
    this.image = image;
}
 context = holder.itemView.getContext();

holder.itemView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent i = new Intent(context, YourActivity.class);
        context.startActivity(i);
    }
});