【问题标题】:RecyclerView : item position intentRecyclerView :项目位置意图
【发布时间】:2018-12-31 20:26:28
【问题描述】:

我成功将onClickListener 放入recyclerView,但我的问题是

recyclerview 中的每个项目都转到相同的新活动!!!

我们可以用物品位置或什么来解决它吗?

我正在尝试将每个RecyclerView(项目或单元格)发送到一个新的activity。假设第一个是食物,将其发送到食物页面,下一个是健康,将其发送到健康页面......等等。我正在尝试更改它发送给用户的每个不同视图的 activity.class活动主体。

我的适配器类

import java.util.List;

    public class Adapter extends RecyclerView.Adapter<Adapter.myViewHolder>{



        Context mcontext;
        List<item> mData;
        RecyclerView recyclerView;







        public Adapter(Context mcontext, List<item> mData) {
            this.mcontext = mcontext;
            this.mData = mData;
        }

        @NonNull
        @Override
        public myViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

            LayoutInflater inflater=LayoutInflater.from(mcontext);
            View v =inflater.inflate(R.layout.card_item,parent,false);

            return new myViewHolder(v);
        }

        @Override
        public void onBindViewHolder(@NonNull final myViewHolder holder, final int position) {

            holder.background_img.setImageResource(mData.get(position).background);
            holder.tv_title.setText(mData.get(position).profilename);
            holder.profile_photo.setImageResource(mData.get(position).profilephoto);
            holder.tv_subtitle.setText(mData.get(position).subtitle);
            holder.share.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {

                    Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
                    sharingIntent.setType("text/plain");
                    String shareBody = "Your body here";
                    String shareSub = "Your subject here";
                    sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, shareSub);
                    sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareBody);
                    mcontext.startActivity(Intent.createChooser(sharingIntent, "Share using"));
                }
            });

            holder.itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {




                    Intent intent = new Intent(mcontext, SomaBay_bulding_Structure.class);

                    mcontext.startActivity(intent);


                }
            });

        }



        @Override
        public int getItemCount() {
            return mData.size();
        }

        public class myViewHolder extends RecyclerView.ViewHolder{

            ImageView profile_photo,background_img;
            TextView tv_title,tv_subtitle;
            Button share;


            public myViewHolder(View itemView) {
                super(itemView);
                profile_photo=itemView.findViewById(R.id.profile_img);
                background_img=itemView.findViewById(R.id.card_background);
                tv_title=itemView.findViewById(R.id.card_title);
                tv_subtitle=itemView.findViewById(R.id.card_subtitle);
                 share = itemView.findViewById(R.id.button_share);


            }


        }
    }

【问题讨论】:

标签: android android-intent android-recyclerview


【解决方案1】:

据我了解您的问题:您需要开始活动取决于不同的项目类型,如果您有此参数:

            Intent intent;
            if(mData.get(position).type.equals("FOOD")){
              intent =  new Intent(mcontext, FoodActivity.class);
            }else if(mData.get(position).type.equals("HEALTH")){
                intent = new Intent(mcontext, HealthActivity.class);
            }else if(...){
                //
            }
            startActivity(intent);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多