在RecyclerView中实现button的跳转功能

作者:I_wen. 时间:2023-06-17 20:21:14 

一>实现功能

在实验二中我们已经实现了在类微信界面添加recyclview并添加相应的imageview,本次实验就是在recyclview中添加一个button控件并实现监听,使鼠标点击时可以跳转到另外一个设计好的界面,具体操作如下。

二>在xml中添加布局文件

首先我们要设计点击后的跳转界面,我直接采用了淘宝中的购物界面添加了一个textview,两个imageview。(以购买华为p50为例huawei.xml)


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:app="http://schemas.android.com/apk/res-auto"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical">
   <TextView
       android:id="@+id/textView9"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="这是华为p50购买界面"
       android:textColor="@color/purple_500"
       android:textSize="20dp"/>
   <ImageView
       android:id="@+id/imageView3"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_weight="1"
       app:srcCompat="@drawable/huaweip50tu" />
   <ImageView
       android:id="@+id/imageView4"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_weight="1"
       app:srcCompat="@drawable/huaweip50" />
</LinearLayout>

在RecyclerView中实现button的跳转功能

三>完善java文件

要在微信中添加button,同样不能在Mainactivity中直接添加,我选择了在weixinFragement中添加,
和添加textview和imageview类似,我采取了类似的方法进行添加,但是在其中一个问题让我很苦恼,要建立一个java类型的数组,不知道用什么型来描述它,经过一番研究,我选择了用object【】来定义它。
在onCreateview中添加代码


Object[] simple={huawei.class,pingguo.class,xiaomi.class};

for(int i=0;i< label.length;i++) {
           Map<String, Object> listitem = new HashMap<String, Object>();
           listitem.put("detail",simple[i]);
           listitem.put("name", label[i]);
           listitem.put("color", color[i]);
           listitem.put("price", price[i]);
           listitem.put("configure", config[i]);
           listitem.put("tutu", phone[i]);
           data.add(listitem);
       }

四>完善adapter文件

首先在MyViewHolder声明一个button控件,并进行绑定


Button button2;

button2=(Button) itemView.findViewById(R.id.button2);

然后在onBindViewHolder添加button2的描述


public void onBindViewHolder(@NonNull MyViewHolder holder, @SuppressLint("RecyclerView") int position) {
       holder.button2.setOnClickListener(new View.OnClickListener(){
           @Override
           public void onClick (View view){
               Intent main2 = new Intent(context,(Class<?>)data.get(position).get("detail"));
               Toast.makeText(context.getApplicationContext(),"正在努力跳转 :)",Toast.LENGTH_SHORT).show();
               context.startActivity(main2);
           }
       });

和之前的textview和imageview有所不同,他的接受position写在onClick中,因为有3个position,它要找到正确的位置进行跳转。

五>完善JAVA文件

跳转不可能直接到xml文件,它同样需要java文件来承载它,并返回相应的信息,我们新建了三个java文件,huawei,pingguo和xiaomi。此处我同样以huawei为例


package com.example.mywork_lbw;

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import androidx.appcompat.app.AppCompatActivity;

public class huawei extends AppCompatActivity {
   public huawei() { }
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.huawei);
       Log.i("life ", "huawei is on create...");  //信息在LogCat控制台输出
       Intent intent = getIntent();
   }
}

在setContentView中我们设置了这个java文件将显示哪一个xml文件,此处当然显示的huawei.xml。

最后就是要把上面的串联起来,在微信总布局中加入button,点击实现跳转,总界面如图:

在RecyclerView中实现button的跳转功能
在RecyclerView中实现button的跳转功能

在RecyclerView中实现button的跳转功能

在RecyclerView中实现button的跳转功能
在RecyclerView中实现button的跳转功能

github链接:https://github.com/yikemi/ASwork_lbw
库名:ASwork_lbw

来源:https://blog.csdn.net/weixin_51059385/article/details/120921832

标签:RecyclerView,button,跳转
0
投稿

猜你喜欢

  • 详解Swagger接口文档和常用注解的使用

    2023-11-24 15:35:21
  • 解析Java程序中对象内存的分配和控制的基本方法

    2023-01-07 21:46:10
  • springMVC实现文件上传和下载

    2023-04-17 16:39:07
  • Android实现多段颜色进度条效果

    2023-09-30 22:07:51
  • 初识MyBatis及基本配置和执行

    2021-11-12 05:53:40
  • Android中关于百度糯米app关闭网页或窗口的方法(99%人不知)

    2023-02-18 00:23:49
  • Android—基于微信开放平台v3SDK开发(微信支付填坑)

    2023-05-20 09:04:02
  • 在Winform框架界面中改变并存储界面皮肤样式的方法

    2021-06-08 09:08:24
  • IntelliJ IDEA 安装目录的核心文件的功能及用法

    2023-02-02 10:46:59
  • Java操作FTP实现上传下载功能

    2021-12-07 18:35:04
  • 新手初学Java常见排序算法

    2022-05-09 03:35:45
  • Spring Boot实现异步请求(Servlet 3.0)

    2023-11-27 06:26:47
  • Android 图片处理缩放功能

    2023-09-29 13:59:54
  • StreamAPI多次消费一个stream代码实例

    2023-10-15 19:44:09
  • C#实现利用Windows API读写INI文件的方法

    2023-03-16 01:23:06
  • Android 微信6.1 tab栏图标和字体颜色渐变的实现

    2023-12-14 22:34:04
  • Java Main 函数启动不退出的解决方案

    2022-03-24 14:25:03
  • spring框架cacheAnnotation缓存注释声明解析

    2022-04-14 17:13:05
  • Spring实战之XML与JavaConfig的混合配置详解

    2023-07-11 18:07:20
  • 人脸认证源码faceIdentify详解

    2023-05-19 09:57:25
  • asp之家 软件编程 m.aspxhome.com