Recylerview点击事件跳转

功能要求

将recyclerView的每个item增加点击功能,点击后跳转到一个新的view展示信息。

开发技术

activity,xml,fragment,button,fragment,recycleview,adapter

设计过程

1.先创建跳转的xml文件,后续拉入LinearLayout,并且拉入TexView以及button。

2.对Adapter的java文件进行修改

public void onBindViewHolder(@NonNull myadapter.myholder holder, int position) {
            String name=list1.get(position).get("my_name").toString();
            String phone=list1.get(position).get("my_phone").toString();
            String area=list1.get(position).get("my_area").toString();
            holder.textView.setText(name);
            holder.textView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent=new Intent(context1,Activity2.class);
                    intent.putExtra("details",name);
                    intent.putExtra("phone",phone);
                    intent.putExtra("area",area);
                    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    //开始跳转
                    context1.startActivity(intent);
                }
            });

        }

3.添加跳转页面的activity组件

添加显示跳转页面的activity2,在外定义button和textview后,再在oncreate中添加对应的连接,并将button返回界面设置为跳转前界面

Button button;
    TextView name_details,textView1,textView2;
    @SuppressLint({"ResourceType", "MissingInflatedId"})
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.details);
        Intent intent=getIntent();
        button=findViewById(R.id.button);
        Log.d("xr","2:onCreate...");
        name_details=findViewById(R.id.name);
        name_details.setText(intent.getStringExtra("details"));
        textView1=findViewById(R.id.phonenumber);
        textView1.setText(intent.getStringExtra("phone"));
        textView2=findViewById(R.id.area_detail);
        textView2.setText(intent.getStringExtra("area"));
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent();
                intent.putExtra("results","888");
                setResult(666,intent);
                finish();
            }
        });
    }

4.对Fragment1的java文件进行修改

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view;
        view = inflater.inflate(R.layout.fragment_1, container, false);
        recycleView=view.findViewById(R.id.RecyclerView);
        String[] names = { "A", "B", "C", "D", "E", "F", "G","H","J"};
        String[] phones = {"123456789", "1561684", "142562175",
                "5438852433", "45378323", "1557247455",
                "5445383524", "5432783854", "1785875424"};
        String[] area = {"湖北 武汉", "湖北 武汉", "湖北 武汉", "湖北 武汉", "湖北 武汉", "湖北 武汉", "湖北 武汉", "湖北 武汉", "湖北 武汉"};

        List<Map<String, Object>> items = new ArrayList<Map<String, Object>>();
        for (int i = 0; i < names.length; i++) {
            Map<String, Object> item = new HashMap<String, Object>();
            item.put("my_name", names[i]);
            item.put("my_phone", phones[i]);
            item.put("my_area", area[i]);
            items.add(item);
        }

        Context context = this.getContext();

        adapter = new myadapter(context, items);

        recycleView.setAdapter(adapter);

        LinearLayoutManager manager = new LinearLayoutManager(context);
        manager.setOrientation(RecyclerView.VERTICAL);
        recycleView.setLayoutManager(manager);
        return view;
    }

结果展示:

点击A前:

点击A后:

点击返回后:

仓库地址:https://github.com/singkf/MyApplication

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值