【问题标题】:How to open new activity from clicking an item from recyclerview如何通过单击 recyclerview 中的项目来打开新活动
【发布时间】:2018-06-14 16:26:33
【问题描述】:

当我单击我的列表视图项时,如何打开一个新的空活动?

我从其他来源获得了代码,我可以用一个按钮来完成,但在自定义回收站视图上却很困惑?

这是我的Mainactivity 代码

@Override
protected void onStart() {
    super.onStart();
    FirebaseRecyclerAdapter<Model, ViewHolder> firebaseRecyclerAdapter =
            new FirebaseRecyclerAdapter<Model, ViewHolder>(
                    Model.class,
                    R.layout.row,
                    ViewHolder.class,
                    mDbRef
            ) {
                @Override
                protected void populateViewHolder(ViewHolder viewHolder, Model model, int position) {

                    viewHolder.setDetails(getApplicationContext(), model.getTitle(), model.getDescription(), model.getImage());

【问题讨论】:

    标签: android listview android-recyclerview


    【解决方案1】:

    您必须按照以下步骤操作:

    1 - 使用构造函数将 上下文 传递给您的适配器

    2 - 在 onBindViewHolder 函数中像这样启动您的活动:

        holder.btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                  Intent intent =  new Intent(context, ActivityToStart.class);
                  context.startActivity(intent);
            }
        });
    

    【讨论】:

      【解决方案2】:

      对于点击事件,你需要实现一个 onClickListener 如下:

          btn.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
      
              }
          });
      

      (如果您利用 'Cntl+ENTER'。这项工作会容易得多。)

      对于改变屏幕(或活动)。

      你可以这样做:

      Intent intent = new Intent(this, SecondActivity.class);
      startActivity(intent);
      

      我希望这会有所帮助。

      【讨论】:

        【解决方案3】:

        您可以在适配器的 onBindViewHolder 函数中设置 onClickListener。并使用意图导航到另一个活动,如下例所示。

        @Override
        public void onBindViewHolder(final LeaderBoardAdapter.MyViewHolder holder, final int 
        position) {
        
            //holder.newsUrl.setText(newsItemList.get(position).getUrl());
            holder.newsDescription.setText(newsItemList.get(position).getDescription());
        
            holder.newsUrl.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(mContext,ReadMoreActivity.class);
                    intent.putExtra("title",newsItemList.get(position).getTitle());
        
                    mContext.startActivity(intent);
        
               }
            });
        
        
        }
        

        【讨论】:

          猜你喜欢
          • 2019-08-24
          • 2018-02-04
          • 1970-01-01
          • 2020-06-02
          • 2020-11-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多