Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.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 如何使用categoryid打开活动_Java_Android_Android Recyclerview - Fatal编程技术网

Java 如何使用categoryid打开活动

Java 如何使用categoryid打开活动,java,android,android-recyclerview,Java,Android,Android Recyclerview,我想用RecyclerView创建一个电影应用程序。此应用程序主要包括3项活动。关于第一类活动电影,如:惊悚片、戏剧。。第二个活动的电影图片和电影名称,例如:海报或截图,第三个活动的电影细节。我计划在这个应用程序中包括100部电影。我想知道如何通过单击第一个活动中的同一电影类别打开电影的第二个/海报活动页面,并通过在第二个活动中点击同一电影图像打开详细活动。请帮帮我 这是我的第一个活动 RecyclerView mRecyclerView; FirebaseDatabase mFirebaseD

我想用RecyclerView创建一个电影应用程序。此应用程序主要包括3项活动。关于第一类活动电影,如:惊悚片、戏剧。。第二个活动的电影图片和电影名称,例如:海报或截图,第三个活动的电影细节。我计划在这个应用程序中包括100部电影。我想知道如何通过单击第一个活动中的同一电影类别打开电影的第二个/海报活动页面,并通过在第二个活动中点击同一电影图像打开详细活动。请帮帮我

这是我的第一个活动

RecyclerView mRecyclerView;
FirebaseDatabase mFirebaseDatabase;
DatabaseReference mRef;


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

    //Actionbar
    Toolbar toolbar = findViewById(R.id.MoviesMain_Toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setTitle("Movie");
    //set title

    //RecyclerView
    mRecyclerView = findViewById(R.id.Movies_recyclerView);
    mRecyclerView.setHasFixedSize(true);

    //set layout as LinearLayout
    mRecyclerView.setLayoutManager(new LinearLayoutManager(this) );

    //send Query to FirebaseDatabase
    mFirebaseDatabase = FirebaseDatabase.getInstance();
    mRef = mFirebaseDatabase.getReference("Movie");
}

//load data into recycler view onStart
@Override
protected void onStart() {
    super.onStart();
    FirebaseRecyclerAdapter<MoviesModel, MoviesViewHolder> firebaseRecyclerAdapter =
            new FirebaseRecyclerAdapter<MoviesModel, MoviesViewHolder>(
                    MoviesModel.class,
                    R.layout.moviesmainitems,
                    MoviesViewHolder.class,
                    mRef
            ) {
                @Override
                protected void populateViewHolder(MoviesViewHolder viewHolder, MoviesModel model, int position) {
                    viewHolder.setDetails(getApplicationContext(), model.getTitle(), model.getImage());
                }
            };

    //set adapter to recyclerview
    mRecyclerView.setAdapter(firebaseRecyclerAdapter);
}    
这是我的第一个取景器

View mView;

public MoviesViewHolder(View itemView) {
    super(itemView);

    mView = itemView;

    //item click
    itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            mClickListener.onItemClick(view, getAdapterPosition());
        }
    });
    //item long click
    itemView.setOnLongClickListener(new View.OnLongClickListener() {
        @Override
        public boolean onLongClick(View view) {
            mClickListener.onItemLongClick(view, getAdapterPosition());
            return true;
        }
    });

}

//set details to recycler view moviesmainitems
public void setDetails(Context ctx, String title, String image){
    //Views

    TextView mDetailTv = mView.findViewById(R.id.rTitleTv);
    ImageView mImageIv = mView.findViewById(R.id.rImageView);

    //set data to views

    mDetailTv.setText(title);
    Picasso.get().load(image).into(mImageIv);

}

private MoviesViewHolder.ClickListener mClickListener;

//interface to send callbacks
public interface ClickListener{
    void onItemClick(View view, int position);
    void onItemLongClick(View  view, int position);
}

public void setOnClickListener(MoviesViewHolder.ClickListener clickListener){
    mClickListener = clickListener;
}
这是我的第二项活动

RecyclerView mRecyclerView;
FirebaseDatabase mFirebaseDatabase;
DatabaseReference mRef;


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

    //Actionbar
    Toolbar toolbar = findViewById(R.id.MoviesSecond_Toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setTitle("Movie");
    //set title

    //RecyclerView
    mRecyclerView = findViewById(R.id.MoviesSecond_recyclerView);
    mRecyclerView.setHasFixedSize(true);

    //set layout as LinearLayout
    mRecyclerView.setLayoutManager(new LinearLayoutManager(this) );

    //send Query to FirebaseDatabase
    mFirebaseDatabase = FirebaseDatabase.getInstance();
    mRef = mFirebaseDatabase.getReference("Movie");
}

//load data into recycler view onStart
@Override
protected void onStart() {
    super.onStart();
    FirebaseRecyclerAdapter<MoviesSecondModel, MoviesSecondViewHolder> firebaseRecyclerAdapter =
            new FirebaseRecyclerAdapter<MoviesSecondModel, MoviesSecondViewHolder>(
                    MoviesModel.class,
                    R.layout.moviesseconditems,
                    MoviesSecondViewHolder.class,
                    mRef
            ) {
                @Override
                protected void populateViewHolder(MoviesSecondViewHolder viewHolder, MoviesSecondModel model, int position) {
                    viewHolder.setDetails(getApplicationContext(), model.getTitle(), model.getImage());
                }
            };

    //set adapter to recyclerview
    mRecyclerView.setAdapter(firebaseRecyclerAdapter);
}
RecyclerView-mRecyclerView;
FirebaseDatabase mFirebaseDatabase;
数据库参考mRef;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_moviessecond);
//操作栏
工具栏工具栏=findViewById(R.id.MoviesSecond_工具栏);
设置支持操作栏(工具栏);
getSupportActionBar().setTitle(“电影”);
//定名
//回收视图
mRecyclerView=findViewById(R.id.moviessond\u recyclerView);
mRecyclerView.setHasFixedSize(true);
//将布局设置为线性布局
mRecyclerView.setLayoutManager(新的LinearLayoutManager(this));
//将查询发送到FirebaseDatabase
mFirebaseDatabase=FirebaseDatabase.getInstance();
mRef=mFirebaseDatabase.getReference(“电影”);
}
//启动时将数据加载到回收器视图
@凌驾
受保护的void onStart(){
super.onStart();
FirebaseRecyclerAdapter FirebaseRecyclerAdapter=
新型FirebaseRecyclerAdapter(
MoviesModel.class,
R.layout.movies第二项,
MoviesSecondViewHolder.class,
mRef
) {
@凌驾
受保护的void populateViewHolder(MoviesSecondViewHolder视图持有人,MoviesSecondModel模型,int位置){
setDetails(getApplicationContext(),model.getTitle(),model.getImage());
}
};
//将适配器设置为recyclerview
mRecyclerView.setAdapter(firebaseRecyclerAdapter);
}

如果您想让您的结构包含3个活动,最好的方法是在
适配器中添加
侦听器
,类似于:

public class MoveiAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{

    private OnInteractionListener mListener;

    public MoveiAdapter(OnInteractionListener listener) {
            mListener = listener;

        @Override
        public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
            holder.itemView.setOnClickListener(v -> {
                    if (mListener != null) {
                        mListener.onFooterClick();
                    }
                });
        }
    }

    public interface OnInteractionListener {

        void onItemClick(int position);

    }
}
public类MoveiAdapter扩展了RecyclerView.Adapter{
私有的OnInteractionListener-MLListener;
public MoveiAdapter(OnInteractionListener侦听器){
mListener=监听器;
@凌驾
BindViewHolder上的公共无效(RecyclerView.ViewHolder,int位置){
holder.itemView.setOnClickListener(v->{
if(mListener!=null){
mListener.onFooterClick();
}
});
}
}
InteractionListener的公共接口{
无效单击(内部位置);
}
}
您将在InteractionListener上实现此接口,当调用
onItemClick()
时,您可以打开下一个
活动

只是一个建议,您只能使用一个
活动
并使用
片段

public class MoveiAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{

    private OnInteractionListener mListener;

    public MoveiAdapter(OnInteractionListener listener) {
            mListener = listener;

        @Override
        public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
            holder.itemView.setOnClickListener(v -> {
                    if (mListener != null) {
                        mListener.onFooterClick();
                    }
                });
        }
    }

    public interface OnInteractionListener {

        void onItemClick(int position);

    }
}