实现recycleView页面的跳转设计

文章目录

  • 实现recycleView页面的跳转设计
  • 一、实现功能
  • 二、核心技术
  • 三、具体实现
    • 1.新建与item条目对应的activity
    • 2.设计.xml界面
    • 3.核心代码
    • contactsdetail1.xml
    • contactsdetail2.xml
    • baidu.xml
    • contactsdetail2.java
    • baidu.java
    • MyAdapter新增内容
  • 四、效果展示
  • 五、心得体会
  • 六、源码

一、实现功能

1、对有recycleView的页面进行点击跳转设计。比如,某一tab页是新闻列表,则点击某一行能跳转到新闻详情页面;
2、本次作业考查的基础原理是对activity的生命周期的理解以及状态转变操作。

二、核心技术

  • 本次对有recycleView的页面进行点击跳转设计主要采用:对点击的每一个item设置监听事件,则是itemview.setOnClickListener(),如果是对其中的imageview、textview等设置监听事件,则imageview.setOnClickListener()。
  • Intent 是一个消息传递对象,可以用来从其他应用组件请求操作。
    Activity 表示应用中的一个屏幕。通过将 Intent 传递给 startActivity(),可以启动新的 Activity 实例。Intent 用于描述要启动的 Activity,并携带任何必要的数据。
holder.itemView.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {//Toast.makeText(context, "你点击的是:" + content, Toast.LENGTH_SHORT).show();Intent intent=new Intent(context,jumpActivity[position]);context.startActivity(intent);}});
  • 但是每点击一个item就会跳转到不同的界面,这时我们就需要设置一个class数组,来存放每次跳转的界面。
private Class[] jumpActivity={contactsdetail1.class,contactsdetail2.class};

三、具体实现

1.新建与item条目对应的activity


会自动生成对应的.xml

2.设计.xml界面

contactsdetail1.xml界面设计如下:

contactsdetail2.xml界面设计如下:

baidu.xml界面设计如下

3.核心代码

contactsdetail1.xml

在这里使用了一个外部链接–www.baidu.com,设置属性android:autoLink="web"和 android:text="www.baibu.com"不用监听事件即可实现页面的再一次跳转,在contactsdetail2则是采用不同的方法实现页面的再一次跳转。
autoLink属性一共有六个值,分别是none(正常),web(将文本识别为一个网址),phone(将文本识别为一个电话号码),mail(将文本识别为一个邮件地址),map(这个,呃,该怎么表述呢?会打开地图应用),all(根据文本自动识别)。一般情况下我们设置为all即可,我们看看,这个时候它就会自动将TextView中的电话号码、邮件地址、网页链接等识别出来,这中方式是最简单的一种。

<?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"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@drawable/bg"android:orientation="vertical"tools:context=".contactsdetail1"><TextViewandroid:id="@+id/textView9"android:layout_width="match_parent"android:layout_height="35dp"android:background="@android:color/holo_blue_bright"android:text="简介"android:textSize="30dp"android:textColor="@color/white"android:gravity="center"/><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><ImageViewandroid:id="@+id/imageView"android:layout_width="400dp"android:layout_height="300dp"app:srcCompat="@drawable/yy" /><TextViewandroid:id="@+id/textView11"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="     杨洋,1991年9月9日出生于上海,籍贯安徽合肥,
毕业于中国人民解放军国防大学军事文化学院2003级舞蹈系,中国内地影视男演员。
代表作品:微微一笑很倾城、你是我的荣耀、全职高手、旋风少女、盗墓笔记、红楼梦、左耳."android:textColor="@color/black"android:textSize="25sp" /><TextViewandroid:id="@+id/textView12"android:layout_width="match_parent"android:layout_height="wrap_content"android:autoLink="web"android:text="www.baibu.com"android:textColor="@color/black"android:textSize="25sp"android:gravity="center"/></LinearLayout>
</LinearLayout>

contactsdetail2.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"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:background="@drawable/bg"tools:context=".contactsdetail2"><TextViewandroid:id="@+id/textView10"android:layout_width="match_parent"android:layout_height="35dp"android:background="@android:color/holo_blue_bright"android:text="简介"android:textSize="30dp"android:textColor="@color/white"android:gravity="center" /><ImageViewandroid:id="@+id/imageView2"android:layout_width="400dp"android:layout_height="300dp"app:srcCompat="@drawable/gj" /><TextViewandroid:id="@+id/textView13"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="     龚俊,1992年11月29日出生于四川省成都市,中国内地影视男演员,毕业于东华大学表演系 [1]
代表作品:山河令、致我们甜甜的小美满、从结婚开始恋爱、你好,火焰蓝 ."android:textColor="@color/black"android:textSize="25sp"/><TextViewandroid:id="@+id/textView14"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:text="想知道更多,请百度一下"android:textColor="#2196F3"android:textSize="25sp" /></LinearLayout>

baidu.xml

这是百度搜索界面,刚开始准备用edittext控件写,但后来找到有个更好用的控件searchview。SearchView是搜索框组件,它可以让用户在文本框内输入文字,并允许通过监听器监控用户输入,当用户输入完成后提交搜索时,也可通过监听器执行实际的搜索。。并为该SearchView组件定义了一个 ListView组件,该ListView组件用于为SearchView组件显示不自动完成列表。

<?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"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".baidu"><ImageViewandroid:id="@+id/imageView4"android:layout_width="match_parent"android:layout_height="wrap_content"app:srcCompat="@drawable/baidu"android:layout_gravity="center"/>< <androidx.appcompat.widget.SearchViewandroid:id="@+id/searchView"android:layout_width="match_parent"android:layout_height="wrap_content"android:iconifiedByDefault="false"android:queryHint="搜索内容"/><ListViewandroid:id="@+id/listView"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1" /></LinearLayout>

contactsdetail2.java

设置监听事件,从对有recycleView的页面进行点击第二个item跳转到第二个界面,再次通过将 Intent 传递给 startActivity(),可以启动新的 Activity 实例,跳转到自己写的百度界面。

package com.example.mywork;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;public class contactsdetail2 extends AppCompatActivity {private TextView textView14;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_contactsdetail2);textView14=findViewById(R.id.textView14);textView14.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Intent intent=new Intent(getApplicationContext(),baidu.class);startActivity(intent);}});}
}

baidu.java

设置文本监听事件, 当点击搜索按钮时触法该方法public boolean onQueryTextSubmit(String query) ,当搜索内容改变时触发该方法
public boolean onQueryTextChange(String newText)

package com.example.mywork;import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.SearchView;import android.os.Bundle;
import android.text.TextUtils;
import android.widget.ArrayAdapter;
import android.widget.ListView;public class baidu extends AppCompatActivity {private String[] Strs = {"杨洋", "龚俊", "王一博", "肖战"};private SearchView SearchView1;private ListView ListView1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_baidu);SearchView1=(SearchView)findViewById(R.id.searchView);ListView1=(ListView)findViewById(R.id.listView);ListView1.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, Strs));ListView1.setTextFilterEnabled(true);// 设置搜索文本监听SearchView1.setOnQueryTextListener(new SearchView.OnQueryTextListener() {// 当点击搜索按钮时触发该方法@Overridepublic boolean onQueryTextSubmit(String query) {return false;}// 当搜索内容改变时触发该方法@Overridepublic boolean onQueryTextChange(String newText) {if (!TextUtils.isEmpty(newText)){ListView1.setFilterText(newText);}else{ListView1.clearTextFilter();}return false;}});}
}

MyAdapter新增内容

主要用于对有recycleView的页面进行点击跳转设计:对点击的每一个item设置监听事件,则是itemview.setOnClickListener(),Intent 是一个消息传递对象,可以用来从其他应用组件请求操作。Activity 表示应用中的一个屏幕。通过将 Intent 传递给 startActivity(),可以启动新的 Activity 实例。

private Class[] jumpActivity={contactsdetail1.class,contactsdetail2.class};
holder.itemView.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {//Toast.makeText(context, "你点击的是:" + content, Toast.LENGTH_SHORT).show();Intent intent=new Intent(context,jumpActivity[position]);context.startActivity(intent);}});

四、效果展示

有recycleView的页面

点击第一个item跳转到contactsdetail1

点击contactsdetail1中的超链接则跳转到此界面

点击第二个item跳转到contactsdetail2

点击文本框则跳转到自己做的百度搜索界面

五、心得体会

  • 本次实验我学会了界面之间的跳转,intent 是一个消息传递对象,可以用来从其他应用组件请求操作。Activity 表示应用中的一个屏幕。通过将 Intent 传递给 startActivity(),可以启动新的 Activity 实例。intent的两大作用:实现页面跳转和数据传递,由于界面设计原因,本次实验没用到数据传递。如果要进行数据传递,就需要用到putExtra()方法。
  • 做的过程遇到了一点小麻烦,就是关于searchview,我们需要向recycleview一样先建立依赖,否则就不可以使用。而且引入的时候要使用import androidx.appcompat.widget.SearchView;,不能使用import android.widget.SearchView;这与版本有关。
  • 这次实验总的来讲,感觉比较简单,很容易就完成了。由于感觉前期做的页面有点丑,这次总体吧前期设计的界面换了一种风格,看着还可以。

六、源码

gitee源码

实现recycleView页面的跳转设计(移动开发第二次作业)相关推荐

  1. 算法设计与分析第二章作业

    1. 2.时间复杂度: 划分子问题:O(1) 求解子问题:2T(2/n) 合并子问题:O(n) 时间复杂度为:T(n) = O(1) + 2T(2/n) + O(n) = O(nlogn) 3.心得与 ...

  2. 张飞硬件设计与开发 第二部

    浮空IO口的三态问题 三极管导通时的功耗最大,主要是因为工艺制作时存在的杂散电容的影响 浮空引脚的下拉可以去除静电和干扰的无关信号,同时加快三极管的关断 二极管的钳位特性,反向特性 电路检测需要关注变 ...

  3. android中页面自动跳转,【学习笔记-安卓开发】8. Android Studio如何实现页面自动跳转(安卓学习系列博客)...

    先将上上一篇博客中写在页面里的button以及相关代码删除 8.如何让页面自动跳转 在安卓开发中有一个非常重要的Handler 当我们输入Handler会出现两个提示,一个是os中的,一个是loggi ...

  4. Android开发:recycleView页面点击跳转

    对带有recycleView的页面进行点击跳转 比如,某一tab页是新闻列表,则点击某一行能跳转到新闻详情页面 主要步骤 一.设计recycleView页面 1.因为我们需要在消息界面建一个消息列表, ...

  5. 怎么实现页面友好跳转_如何实现软,友好和一致的UI设计

    怎么实现页面友好跳转 重点 (Top highlight) Design trends are constantly changing, aren't they? Each month there i ...

  6. app.vue 跳转页面_【在线教学】第8章 网站页面布局和模块设计

    第8章  网站页面布局和模块设计 8.1 网站页面布局 在设计网站界面时,将页面中的模块进行规范化的设计和合理的布局,能够实现网页内容的结构化,使访问者直观.迅速的找到需要的信息. 1.网站UI视觉规 ...

  7. 网页设计实现三个页面的跳转,有文字、图片和超链接

    网页设计实现三个页面的跳转,有文字.图片和超链接 直接来干货吧,哈哈 可作为摸板 一.实现效果 二.源代码 <!DOCTYPE html> <html lang="en&q ...

  8. express 使用 redirect 对 ajax 无效 页面不跳转

    问题描述: 自己在使用 express 的 redirect 时,并不进行跳转操作,但是前端是可以接收到整个后端将要跳转的整个页面的 html 已经是301状态码,但是页面不跳转 原因: 使用 aja ...

  9. B端页面——详细表单设计流程

    一.什么是表单? 表单设计是B端产品设计的基础页面,想要做好表单设计首先要搞清楚表单的应用场景. 表单是用户采集数据信息的核心场景,同时又通过表单向用户展示数据信息,简而言之表单是用户与数据库之间的桥 ...

最新文章

  1. php 输出excepion内容,带有消息“无法关闭zip文件php://输出”的PHPExcel_Writer_Exception...
  2. stl中unordered_map 和 map的区别 ?
  3. 【Linux】一步一步学Linux——xeyes命令(228)
  4. 基于注解的AOP实现事务控制及问题分析
  5. 几种身份的创业者优劣势大比拼
  6. -9 逆序输出一个整数的各位数字_【每日算法】基础算法——归并排序[求逆序对的数量](四)(思想很经典)...
  7. 信息学奥赛一本通(1025:保留12位小数的浮点数)
  8. Base64的编码实现原理攻略
  9. python笔记9-多线程Threading之阻塞(join)和守护线程(setDaemon)
  10. matplotlib学习日记(八)----完善统计图
  11. 水电缴费系统php源码_水电缴费管理系统(示例代码)
  12. cad插入块_CAD中创建块,有一种最快捷的方式,看看你用过没?
  13. 电脑自带的edge浏览器无法访问解决问题
  14. oracle结构描,轻松取得Oracle结构描述句法
  15. C语言一维数组、二维数组传参
  16. 透过表象看本质!?之多年未填的坑
  17. SUSE Linux 15 If ‘netstat‘ is not a typo you can use command-not-found to lookup the package...
  18. w10计算机无法打印,win10电脑无法打印文件怎么办?
  19. 【跟着江科大学Stm32】STM32F103C6T6_实现呼吸灯_代码
  20. [linux][运维]DELL服务器raid命令行工具MegaCli常用命令

热门文章

  1. 一个非常好的美语音标发音口形的网址
  2. Happytime RTSP Pusher,命令行工具提供
  3. .DS_Store文件
  4. css 实现三角形箭头
  5. BZOJ 1925 地精部落 DP
  6. mysql 数据表内容_mysql数据库内容相关操作
  7. 又倒在了税务上,难道真的是抵不住“金钱”的诱惑,选择“铤而走险”?
  8. VS2017安装Newtonsoft.Json插件
  9. 磊科NW705S的Qos设置
  10. 任务栏的输入法图标不见了