在Android系统中,每个App应用通常都由多个界面组成,一个界面就是一个Activity,这些界面进行跳转,实际上就是Activity之间的跳转。跳转需要用到的Intent组件,通过Intent开启新的Activity来实现界面跳转。 Intent的属性有动作(Action)、数据(Data)、分类(Category)、类型(Type)、组件(Component)和扩展(Extra),其中最常用的是Action属性. 显式Intent可以直接通过名称开启指定的目标组件,通过其构造方法Intent(Context paokageContext,Class<?> class)来实现 通过这个方法创建一个Intent对象,然后将该对象传递给Activity的startActivity()方法,即可启动目标组件。示例代码如下: Android 系统一般通过一个已经启动的Activity对象,调用其startActivity()或startActivityForResult()方法来启动另一个Activity,这个过程中传递的参数就是一个显式Intent对象 隐式Intent相比显式Intent来说更为抽象,它并没有明确指定要开启哪个目标组件,而是指定action和category等属性信息,系统根据这些信息进行分析,然后寻找Activity。各种系统功能的调用,如调用通讯录、查看通话记录、发短信、google搜索等,就适合采用隐式Intent来开启。 Intent组件是Android系统的一种运行时的绑定机制,在Android的应用程序中,不管是界面切换,还是传递数据,或是调用外部程序,都可能要用到Intent。 Bundle类是为字符串与某组件对象建立映射关系的组件。它与Intent配合使用,可在不同的Activity之间传递数据。Bundle类的常用方法如下。 不使用Bundle对象,Intent一样可以保存数据,并传递到下一个Activity。使用Bundle与Intent配合,会使得程序的逻辑更加清晰。 这部分代码采用相对布局,完成主界面的搭建,后面会对内部代码做更深层次分析 除了对width与height做简单的设置外,设置方向为垂直。 主要是显示文字的,非编辑的哟!基本设置外,相对布局让其居中,并设置外边距Top 20单位。id一定要设置,为了给后面坐下参照 width与height和id基本操作外,也是居中,外边距20单位。在TextView底部 width与height和id基本操作外,也是居中,外边距20单位。在EditText底部 这部分代码与楼上布局代码类似不作过多介绍,大家可以按照葫芦画瓢,自己写哟,也是可以的!下面继续往下走 主界面java文件名为MainActivity.java,因为之前理论讲得很透彻,我们要用Intent作为媒介进行操作,因此本java文件主要做两个方面东西:激活窗口,点击按钮激活另一个窗体。这里都用到了Intent和Bundle。 其实第二个界面也有按钮做返回,所以也要click事件,激活获得id是基本保证。 程序可以正常运行 程序效果就是之前的测试效果。 在界面之间传递数据的时候,运用到Intent和Bundle。传递数据需要Intent作为媒介。因此程序整体实现步骤再次总结 很高兴博文能帮助到大家!理论篇
Intent
例如:Intent.ACTION_MAIN:应用程序入口; Intent.ACTION_SEND:发送短信、发送邮件等 Intent.ACTION_VIEW:显示数据给用户,如浏览网页、显示应用、寻找应用等 Intent.ACTION_WEB_SEARCH:从谷歌搜索内容 Intent.ACTION_DIAL:拨打电话 Intent.ACTION_PICK:打开联系人列表
Intent分类
显示Intent
Intent intent = new Intent(this,Activity02.class); startActivity(intent);
隐式Intent
Uri uri = Uri.parse("https://www.baidu.com"); Intent it = new Intent(Intent.ACTION_VIEW,uri); startActivity(it);
Activity之间的跳转
Bundle类
putString(String key,String value):把字符串用键值对的形式存放到Bundle对象中。 remove(String key):移除指定key的值 getString(String key):获取指定key的字符
应用Intent在不同的Activity之间传递数据
在界面的Activity A端
Intent intent = new Intent(); Bundle bundle = new Bundle(); Intent.setClass(<MainActivity.this,secondActivity.class); bundle.putString("标记1","要传递的消息内容"); Intent.putExtras(bundle);
在另一界面的Activity B端
Bundle bb = this.getIntent().getString().getExtras(); String str = bb.getString("标记1");
实践篇–界面之间传递数据
测试效果
第二个页面中这两个相互切换的哟!上一篇博文比较基础主要实现两页面切换的基础操作
Android|Activity类理论篇(附用户界面切换案例)实现步骤
创建新项目 My sixApplication
点进Project—>Empty Activity—>然后名字改下,finish即可。成功之后,点击箭头运行程序。
程序正常可以跑成功hello world字样,下面我们继续布局activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android" xmlns:app="https://schemas.android.com/apk/res-auto" xmlns:tools="https://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="这里是MainActivity" android:layout_marginTop="20px" android:layout_centerHorizontal="true" android:id="@+id/txt2" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/txt2" android:layout_centerHorizontal="true" android:id="@+id/edit"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/edit" android:layout_centerHorizontal="true" android:text="输入文本,跳转到下一个页面" android:id="@+id/btn"/> </RelativeLayout>
RelativeLayout详解
TextView详解
EditText详解
android:layout_below="@id/txt2"
Button详解
创建空类做第二个界面
右击app文件夹。箭头操作!一路默认下去直接finish布局activity_main2.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android" xmlns:app="https://schemas.android.com/apk/res-auto" xmlns:tools="https://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="欢迎来到第二个页面" android:layout_marginTop="20px" android:layout_centerHorizontal="true" android:id="@+id/txt1" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/txt2" android:layout_centerHorizontal="true" android:layout_below="@id/txt1"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/txt2" android:layout_centerHorizontal="true" android:text="返回第一个页面" android:id="@+id/btn2"/> </RelativeLayout>
配置主界面java文件
package com.example.mysixapplication; import androidx.appcompat.app.AppCompatActivity; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; public class MainActivity extends Activity implements View.OnClickListener { Button btn; EditText edit; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); edit = (EditText)findViewById(R.id.edit); btn = (Button)findViewById(R.id.btn); btn.setOnClickListener(this); } public void onClick(View view) { Intent intent = new Intent(MainActivity.this,Main2Activity.class); Bundle bundle = new Bundle(); bundle.putString("edit",edit.getText().toString()); intent.putExtras(bundle); startActivity(intent); } }
配置第二个界面java文件
package com.example.mysixapplication; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import static com.example.mysixapplication.R.layout.activity_main2; public class Main2Activity extends AppCompatActivity implements View.OnClickListener { Button btn2; TextView txt2; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(activity_main2); txt2 = (TextView)findViewById(R.id.txt2); btn2 = (Button)findViewById((R.id.btn2)); Bundle bb = this.getIntent().getExtras(); String str = bb.getString("edit"); txt2.setText(str); btn2.setOnClickListener(this); } @Override public void onClick(View v) { Intent intent2 = new Intent(); intent2.setClass(this,MainActivity.class); startActivityForResult(intent2,0); } }
点击运行
程序效果
总结
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算