简介

“Activity”是Android应用中负责与用户交互的组件,相当于Swing中的JFrame控件,但Jframe本身可以设置布局管理器,即自身可以添加组件,但activity只能通过“setContentView(View)”方法来显示布局文件中已经定义的组件

一、如何创建Activity

① 新建一个Android Studio工程;
② 在新建工程中创建Activity,命名为SecondActivity;
③ 为SecondActivity创建对应的UI界面,并通过setContView()设置layout布局页 面;
④ 完成Activity的注册。
1.布局文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@drawable/login_back"><TextViewandroid:id="@+id/textView"android:layout_width="match_parent"android:layout_height="74dp"android:layout_alignParentStart="true"android:layout_alignParentEnd="true"android:layout_alignParentBottom="true"android:layout_centerInParent="true"android:layout_marginStart="-4dp"android:layout_marginEnd="4dp"android:layout_marginBottom="550dp"android:backgroundTint="#D9E0E4"android:text="请选择登录方式:"android:textColor="#EAE4E4"android:textSize="24sp" /><Buttonandroid:id="@+id/button1"android:layout_width="240dp"android:layout_height="wrap_content"android:layout_alignParentStart="true"android:layout_alignParentEnd="true"android:layout_alignParentBottom="true"android:layout_centerHorizontal="true"android:layout_marginStart="82dp"android:layout_marginEnd="89dp"android:layout_marginBottom="424dp"android:text="微信登录 -->" /><Buttonandroid:id="@+id/button2"android:layout_width="240dp"android:layout_height="wrap_content"android:layout_alignParentStart="true"android:layout_alignParentEnd="true"android:layout_alignParentBottom="true"android:layout_centerHorizontal="true"android:layout_marginStart="85dp"android:layout_marginEnd="86dp"android:layout_marginBottom="358dp"android:text="手机验证码登录 -->" /><Buttonandroid:id="@+id/button0"android:layout_width="237dp"android:layout_height="wrap_content"android:layout_alignParentStart="true"android:layout_alignParentEnd="true"android:layout_alignParentBottom="true"android:layout_centerHorizontal="true"android:layout_marginStart="84dp"android:layout_marginEnd="89dp"android:layout_marginBottom="498dp"android:text="QQ登录 -->" /></RelativeLayout>

2.对应activity在AndroidManifest.xml文件里注册

3.布局效果:

二、如何实现跳转——intent的使用

1.显示intent的使用

1.1通过显式Intent设置当前上下文环境和目标Activity,实现第一种页面跳转

eg:通过点击首页QQ登录,跳转到QQ信息登录页面
①.布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center_horizontal"android:orientation="vertical"><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="80dp"android:src="@drawable/qq" /><FrameLayoutandroid:layout_width="350dp"android:layout_height="70dp"android:layout_marginTop="50dp" ><EditTextandroid:id="@+id/qq_num"android:layout_width="match_parent"android:layout_height="match_parent"android:hint="QQ号/手机号/邮箱"android:inputType="number"android:maxLines="1"android:textSize="20sp"android:gravity="center"/><ImageViewandroid:id="@+id/iv_et_num_delete"android:layout_width="25dp"android:layout_height="25dp"android:layout_gravity="right|center_vertical"android:layout_marginRight="20dp"android:background="@drawable/delete" /></FrameLayout><FrameLayoutandroid:layout_width="350dp"android:layout_height="70dp"android:layout_marginTop="20dp" ><EditTextandroid:id="@+id/qq_pwd"android:layout_width="match_parent"android:layout_height="match_parent"android:hint="输入密码"android:inputType="textPassword"android:maxLines="1"android:textSize="20sp"android:gravity="center"/></FrameLayout><ImageViewandroid:id="@+id/qq_login"android:layout_width="102dp"android:layout_height="35dp"android:layout_marginTop="80dp"android:src="@drawable/go_right" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="50dp"android:layout_marginTop="60dp"android:gravity="center"android:orientation="horizontal"><TextViewandroid:id="@+id/qq_forgetpwd"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="忘记密码"android:textColor="#141313" /><Viewandroid:layout_width="1dp"android:layout_height="10dp"android:layout_marginLeft="50dp"android:background="#141313" /><TextViewandroid:id="@+id/qq_register"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="50dp"android:text="用户注册"android:textColor="#141313" /></LinearLayout>
</LinearLayout>

设想效果:


②.QQ登录页面对应Activity文件

package com.example.test_intent;import android.os.Bundle;import androidx.appcompat.app.AppCompatActivity;public class intent0 extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.qq_login_test);}
}

③.intent使用方法

package com.example.test_intent;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;import androidx.annotation.Nullable;public class SecondActivity extends Activity {//关联界面//重写方法@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.layout_second_activity);//button0:通过显式Intent设置当前上下文环境和目标Activity,实现第一种页面跳转。//button0实例化Button button00 = (Button) findViewById(R.id.button0);//监听按钮button00.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//显示intentIntent intent0 = new Intent(SecondActivity.this,intent0.class);//当前上下文环境;目标类//启动activitystartActivity(intent0);}});
}

④.注册信息

        <activity android:name=".intent0"></activity>

1.2 通过显式Intent设置目标Activity所在的包名和类的全路径,实现第二种页面跳转

eg:通过点击第二个按钮,使页面跳转到微信信息登录页面
①.微信登录页面布局文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_height="match_parent"android:layout_width="match_parent"><ImageViewandroid:id="@+id/imageView4"android:layout_width="136dp"android:layout_height="126dp"android:layout_alignParentTop="true"android:layout_alignParentEnd="true"android:layout_marginTop="16dp"android:layout_marginEnd="12dp"app:srcCompat="@drawable/truth" /><TextViewandroid:id="@+id/textView2"android:layout_width="186dp"android:layout_height="48dp"android:layout_alignParentStart="true"android:layout_alignParentEnd="true"android:layout_alignParentBottom="true"android:layout_marginStart="3dp"android:layout_marginEnd="164dp"android:layout_marginBottom="440dp"android:text="已关联微信账号,请输入密码" /><EditTextandroid:id="@+id/editTextTextPassword"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:layout_centerHorizontal="true"android:layout_marginBottom="277dp"android:ems="10"android:gravity="center"android:hint="请输入微信密码"android:inputType="textPassword" /><TextViewandroid:id="@+id/wechat_id"android:layout_width="176dp"android:layout_height="97dp"android:layout_alignParentTop="true"android:layout_alignParentEnd="true"android:layout_alignParentBottom="true"android:layout_marginTop="23dp"android:layout_marginEnd="198dp"android:layout_marginBottom="611dp"android:ems="10"android:gravity="center"android:text="真理"android:textColor="#141313"android:textSize="30sp"android:textStyle="bold" /><TextViewandroid:id="@+id/qq_forgetpwd"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentStart="true"android:layout_alignParentBottom="true"android:layout_marginStart="32dp"android:layout_marginBottom="213dp"android:text="忘记密码"android:textColor="#141313" /><Viewandroid:layout_width="3dp"android:layout_height="12dp"android:layout_alignParentEnd="true"android:layout_alignParentBottom="true"android:layout_centerHorizontal="true"android:layout_marginLeft="50dp"android:layout_marginEnd="178dp"android:layout_marginBottom="217dp"android:background="#141313" /><TextViewandroid:id="@+id/qq_register"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentEnd="true"android:layout_alignParentBottom="true"android:layout_marginLeft="50dp"android:layout_marginEnd="42dp"android:layout_marginBottom="212dp"android:text="用户注册"android:textColor="#141313" /><ImageViewandroid:id="@+id/qq_login"android:layout_width="102dp"android:layout_height="35dp"android:layout_alignParentEnd="true"android:layout_alignParentBottom="true"android:layout_centerHorizontal="true"android:layout_marginTop="80dp"android:layout_marginEnd="127dp"android:layout_marginBottom="122dp"android:src="@drawable/go_right" /></RelativeLayout>

Design:

②.对应activity文件

package com.example.test_intent;import android.os.Bundle;import androidx.appcompat.app.AppCompatActivity;public class intent1Activity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.wechat_login_test);}
}

③.intent方法实现

package com.example.test_intent;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;import androidx.annotation.Nullable;public class SecondActivity extends Activity {//关联界面//重写方法@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.layout_second_activity);//button1:通过显式Intent设置目标Activity所在的包名和类的全路径,实现第二种页面跳转。Button button10 = (Button) findViewById(R.id.button1);button10.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent1 = new Intent();intent1.setClassName("com.example.test_intent","com.example.test_intent.intent1Activity");//目标参数的包名与类名startActivity(intent1);}});
}

④.注册文件

 <activity android:name=".intent1Activity"></activity>

2.隐式intent方法

通过隐式Intent设置setAction(),实现第三种页面跳转
eg:点击手机登录,实现页面跳转
①.布局文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"xmlns:tools="http://schemas.android.com/tools"android:name="action2"><EditTextandroid:id="@+id/editTextPhone"android:layout_width="237dp"android:layout_height="wrap_content"android:layout_alignParentStart="true"android:layout_alignParentTop="true"android:layout_alignParentBottom="true"android:layout_centerHorizontal="true"android:layout_marginStart="99dp"android:layout_marginTop="288dp"android:layout_marginBottom="398dp"android:ems="10"android:hint="请输入您的手机号"android:gravity="center"android:inputType="phone"android:visibility="visible"/><EditTextandroid:id="@+id/editTextNumber"android:layout_width="131dp"android:layout_height="wrap_content"android:layout_alignParentEnd="true"android:layout_alignParentBottom="true"android:layout_centerHorizontal="true"android:layout_marginEnd="184dp"android:layout_marginBottom="318dp"android:ems="10"android:inputType="number" /><Buttonandroid:id="@+id/button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentEnd="true"android:layout_alignParentBottom="true"android:layout_marginEnd="71dp"android:layout_marginBottom="319dp"android:text="验证码" /><ImageViewandroid:id="@+id/qq_login"android:layout_width="102dp"android:layout_height="35dp"android:layout_alignParentEnd="true"android:layout_alignParentBottom="true"android:layout_marginTop="80dp"android:layout_marginEnd="143dp"android:layout_marginBottom="241dp"android:src="@drawable/go_right" /><TextViewandroid:id="@+id/qq_forgetpwd"android:layout_width="62dp"android:layout_height="wrap_content"android:layout_alignParentEnd="true"android:layout_alignParentBottom="true"android:layout_marginEnd="253dp"android:layout_marginBottom="181dp"android:text="返回"android:textColor="#141313" /><Viewandroid:layout_width="1dp"android:layout_height="21dp"android:layout_alignParentEnd="true"android:layout_alignParentBottom="true"android:layout_marginLeft="50dp"android:layout_marginEnd="192dp"android:layout_marginBottom="177dp"android:background="#141313" /><TextViewandroid:id="@+id/qq_register"android:layout_width="59dp"android:layout_height="wrap_content"android:layout_alignParentEnd="true"android:layout_alignParentBottom="true"android:layout_marginLeft="50dp"android:layout_marginEnd="72dp"android:layout_marginBottom="180dp"android:text="帮助"android:textColor="#141313" />
</RelativeLayout>

Design:

②.activity文件

package com.example.test_intent;import android.os.Bundle;import androidx.appcompat.app.AppCompatActivity;public class intent2Activity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}
}

③.隐式intent实现方法

在这里插入package com.example.test_intent;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;import androidx.annotation.Nullable;public class SecondActivity extends Activity {//关联界面//重写方法@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.layout_second_activity);//button2:通过隐式Intent设置setAction(),实现第三种页面跳转。Button button20 = (Button) findViewById(R.id.button2);button20.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent2 = new Intent();intent2.setAction("Action0");startActivity(intent2);}});
}

④.注册信息

        <activity android:name=".intent2Activity"><intent-filter><action android:name="Action0" /><category android:name="android.intent.category.DEFAULT" /></intent-filter></activity>

三、总体结构

四、实现效果:


五、问题与总结

1.布局Design与最后实现效果不一致,运行app时,设计的页面没有完整显示
目前认为可能是布局tag有关,解决以后再及时更新
2.一开始运行app时,程序不报错,且能正常打开,但点击按钮时会提示“该应用已强制停止”,然后退出
这是因为页面内的代码不完整,对应activity没有在AndroidManifest.xml文件里注册,所以造成app文件不完整,想要运行正常就需要查看并保证对应每一个activity文件都有注册信息

实验四:app内页面跳转相关推荐

  1. android 外部内容分享到app内,外部跳转APP

    需求 广告推广.华为微服务:通过外部网页或者卡片跳转到我们的app指定界面.如果app已经存在打开app,app不存在跳转下载界面. APP配置 android:name=".Launche ...

  2. android界面实现框架内页面跳转_KVM虚拟化管理平台的实现

    KVM虚拟化管理平台的实现 源码链接:https://github.com/wsjhk/IaaS_admin.git 视频演示链接:https://v.youku.com/v_show/id_XMjg ...

  3. 微信中下载APP,页面跳转提示信息的实现

    相信做前端的朋友一定都遇到这种情况的,当你的网页中有直接链接apk下载的时候会没有反映的,是因为在微信内是无法下载软件.手机APP等,那么这个时候一般的解决方案就是:必须要点击右上角三个点,选择&qu ...

  4. MUI框架开发HTML5手机APP(二)--页面跳转传值底部选项卡切换

    原文链接:   一.MUI加载子页面 1加载子页面详解 在mobile app开发过程中,经常遇到卡头卡尾的页面,也就是说头部和尾部保持不动,而只有中间区域可以滚动,常见的就是新闻列表与详情页等情况: ...

  5. 微信小程序插件内页面跳转和参数传递

    在此以插件开发中文章列表跳传文章详情为例. 1.首先在插件中的文章列表页面wxml中绑定跳转事件. bindtap='url' data-id="{{item.article_id}}&qu ...

  6. android h5页面跳转,android H5 应用内跳转Scheme协议

    什么是URL Scheme 概述: android中的scheme是一种页面内跳转协议,是一种非常好的实现机制,通过定义自己的scheme协议,可以非常方便跳转app中的各个页面:通过scheme协议 ...

  7. 网页跳转(APP内/浏览器)

    APP内网页跳转: xml <WebViewandroid:layout_below="@id/lunbo"android:layout_width="match_ ...

  8. 栈外h5跳转app,否则跳商城下载

    端外在打开h5时,一些情况下需要唤起app.若安装app,则唤起,否则跳转手机商城下载页. 1 获取端外统跳地址 需要找端内开发人员提供,格式大致如下: /*** protocol为统跳协议(每一个a ...

  9. H5 引用vue 打开app(如何该手机内有某个app则直接打开app,如果没有则跳转app下载页面)

    H5 引用vue 打开app(如何该手机内有某个app则直接打开app,如果没有则跳转app下载页面) **ps: 一定一定一定一定先向 ios要 ( ios下载地址 和 ios对应的app协议 ), ...

最新文章

  1. 神经网络无法区分异同,而且这个缺陷是本质性的
  2. Linux组管理和权限管理
  3. 爱奇艺个性化推荐排序实践【转】
  4. 【bzoj1911】 Apio2010—特别行动队
  5. 请问:如何写出没有BUG的代码?
  6. CASREL:A Novel Cascade Binary Tagging Framework for Relational Triple Extraction(关系抽取,ACL2020,重叠关系)
  7. idea 分支管理插件_Git的分支管理常用命令
  8. java spring mvc api_SpringMVC实现REST API
  9. 游戏建模用什么软件,学游戏建模哪里好?
  10. 做游戏,学编程(C语言) 8 英雄联盟连连看
  11. java调用arcgis soe发布的rest服务,中文传值乱码问题
  12. SVN提示is already locked 解决办法
  13. 如何在 Mac 上设置自定义锁屏信息?
  14. Javascript:访问和设置CSS属性
  15. 税控接口 - 模拟录入
  16. 第二篇:傅里叶变换与短时傅里叶变换
  17. mysql实验体会怎么写_数据库实验心得
  18. 「解决方案」运维、能耗、网关整体解决方案
  19. 移动硬盘文件丢失如何找回?
  20. python 英文关键词提取_python TF-IDF算法实现文本关键词提取

热门文章

  1. python you-get 下载视频
  2. 如何将FLV格式视频转换成高清MP4格式方法
  3. Laravel5.4中文分词搜索-使用 Laravel Scout,Elasticsearch,ik 分词(二)
  4. 如何使用Transformers和Tokenizers从头开始训练新的语言模型
  5. BCD码和ASCII码的相互转换
  6. kickstarter众筹
  7. 15W无线充电芯片介绍
  8. 台式计算机耗电,台式电脑和笔记本耗电量对比,分别是多少?
  9. 阿里云一个账号给多个主体备案
  10. GTD时间管理学习心得(1)