上一节学习了通过Intent去启动另外一个Activity。 本节学习通过Intent传值。...还是依旧创建两个Activity,我依旧是用之前的MainActivity和SecondActivity 先看MainActivity的布局文件,SecondActivity的布局文件就不列出,和上节课一样...="true" android:layout_marginTop="53dp" android:text="MainActivity" /> android:layout_marginTop="87dp" android:ems="10" /> 我增加了一个EditText,通过在EditText中输入的字符,然后传递给SecondActivity...被创建"); textView = (TextView)findViewById(R.id.textView1); //获得启动SecondActivity的Intent,也就是MainActivity
使用Android Studio创建一个Android的Add New Activity工程(步骤略,详见上篇博客),在这个工程中默认会有一个Blank Activity,而且在Blank Activity...一、Activity的创建与组件添加 1.创建一个Blank Activity 在Android Studio的文件资源目录中,选中你要创建Activity的包,右键单击->New -> Activity...二、Activity间的跳转与传值 在上面我们创建了一个名为SecondActivity的Blank Activity一直没有,从上面的运行效果可以看出在MainActivity中有一个Go Second...Activity的Button, 她就是用来跳转到SecondActivity的,不同Activity见跳转可以传值,也可以在返回的时候返回值,接下来就介绍Activity间的跳转和传值问题。...使用Intent进行Activity的跳转 Intent在Android开发中被誉为“意图”,从字面意思不难理解,就是“你打算去哪”。
上一节学习了利用Intent传值。本节学习利用激活新的Activity获得其返回值。...MainActivity的布局文件如下: <TextView android:id="@+id/textView1" android:layout_width="...android:layout_marginTop="83dp" android:text="SecondActivity" /> MainActivity的逻辑部分: public...的Intent,也就是MainActivity中new 的intent intent = this.getIntent(); //获得传进来的值 Bundle bundle = intent.getExtras...通过Intent传值,以及通过新的Activity返回值,就已经讲完了。
Android 组件系列之Activity的传值和回传值 在这篇随笔里将讲解Activity的传值和回传值。...一、通过startActivity来进行Activity的传值 在Android中,如果我们要通过一个Activity来启动另一个Activity,可以使用 startActivity(Intent intent...对象,在启动时,就会找到名字为 com.xiaoluo.android_intent.second 的对象,来启动我们的SecondActivity。...二、通过startActivityForResult方法来得到Activity的回传值 在一些情况下,我们通过 A activity跳转到 B activity上,这时希望 A activtiy能从 B...例如,我们希望完成下面一个功能,在MainActivity上,写上一个算术表达式,然后跳转到到第二个SecondActivity上,在这个 Activity上将第一个Activity的表达式显示出来,然后我们可以输入我们的算术表达式结果
本文为Android的Activity相关知识整理,具体参考了 《Android开发艺术探索》第一章 《Android群英传》第八章 《第一行代码》第二章 Activity是与用户交互的第一接口。...Activity销毁,在MainActivity按返回键 onPause()->onStop()->onDestory(),此时已经销毁 MainActivity。...我们应该尽量在onStop中做操作,使得新Activity尽快显示 MainAcitivty->onPause SecondActivity->onCreate SecondActivity->onStart...> standard,标准模式,每次都会创建新的Activity覆盖在原Activity上 1443679-03798067da81e26b.webp.jpg singleTop,栈顶复用模式,首先判断栈顶...="singleTask"/> 如果从MainActivity启动SecondActivity,然后再启动ThirdActivity,那么任务栈如下: com.test.task0 MainActivity
一、通过startActivity来进行Activity的传值 在Android中,如果我们要通过一个Activity来启动另一个Activity,可以使用 startActivity(Intent intent...中在 元素下指定一个 对象,然后其子元素声明一个 元素,这样我们可以将这个action动作绑定到了这个Activity上,即Android操作系统会去找与intent对象中指定的action名字的...二、通过startActivityForResult方法来得到Activity的回传值 在一些情况下,我们通过 A activity跳转到 B activity上,这时希望 A activtiy能从 B...还是可以用Intent传值,不过要对传递的对象作一些特殊处理,可以参考这篇博客: intent可以传递的数据类型 三、先把数据存在本地,然后在下一个Activity中从本地取。...按照Android官方给的建议的解决方法如下: Communicating with the Activity,思路就是Activity实现某个接口,然后在Fragment-A关联上Activity之后将
在今年的 IO 大会上,发布了一套叫 Android Jetpack 的程序库。...添加依赖 首先,需要使用 Android Studio 3.2 以上版本才能使用 Navigation。...但是可以发现,Activity 的右边是没有这个小圆圈的,所以 Navigation 并不能处理从 Activity 发起的跳转。...android:id="@+id/secondActivity" android:name="com.example.navigation.SecondActivity...此外,还可以在 Navigation 的 xml 文件中配置传参,但这种方式目前支持的数据类型比较少,连 boolean 都不支持,而且我还碰到了 bug,所以目前不建议用。
什么是依赖,更详细的硬编码依赖的缺点这部分,更详细的可以参考这篇文章,我就是从篇文章学习来的。...将服务传递给客户端而不是客户端构建或者寻找服务,这是模式(依赖注入)的基本要求。 换句话说: 依赖作为依赖者的一部分。将依赖传递给依赖者而不是由依赖者构建或者寻找依赖,这是依赖注入的基本要求。...例如 我注入一个 字符串,数字或一个 第三方依赖的对象 例如 Retrofit ,@Inject 已经满足不了啦。...@Provides @Named("address") public String provideAddress(){ return "北京"; } // 在 属性上也加上...举个例子,我要 DBManager 在全局单例,需要以下几个步骤 在 DBManger 上使用 @Singleton 或者 在 @Provides 修饰的方法上加。
上一篇文章:从0系统学Android-2.1Activity的使用 2.3.1 使用显式 Intent 对于创建 Activity 的过程我们已经很熟悉了,下面快速的创建第二个 Activity。...由于 Android Studio 已经默认给我们注册了,就不需要了,这个 Activity 也不是主 Activity 也就不需要配置 了。...Intent 是 Android 应用程序中各个组件进行交互的一个重要的方式。可以通过它指明当前组件想要执行的动作,还可以在不同的组件之间传递数据。...intent = new Intent(MainActivity.this,SecondActivity.class); startActivity(intent);...} }); 首先传入了 MainActivity 这个上下文,传入 SecondActivity.class 作为要启动的 Activity。
测试逻辑很简单,在MainActivity中点击按钮启动SecondActivity,在SecondActivity中点击按钮启动ThirdActivity。...运行该示例,并且点击MainActivity界面中的按钮,开启SecondActivity。在该示例中SecondActivity的启动模式为singleTask。...image.png 所以,和官方文档表述的不同,MainActivity和SecondActivity是启动在同一个任务中的。...在概念上,具有相同的affinity的activity(即设置了相同taskAffinity属性的activity)属于同一个任务。 ...所以,在使用singleTask和FLAG_ACTIVITY_NEW_TASK时,要仔细测试应用程序。这也是官方文档上的建议。
下面是给要启动的 Activity 在AndroidManifest.xml文件中设置: android:name=".SecondActivity">...Intent intent = new Intent(MainActivity.this,SecondActivity.class); intent.putExtra("Name","Android"...Intent 返回数据到上一个界面 当使用 Intent 从 MainActivity 跳转到 SecondActivity ,当在关闭或返回 MainActivity 时需要从 SecondActivity...在 MainActivity 中重写回调方法获取从SecondActivity 中设置的数据通过 key。...然后将原来界面上的文字 MainActivity 设置为从 SecondActivity 中取回的值。 ?
这时在Android Studio的LogCat窗口会打印MainActivity生命周期中的执行方法,如下图所示: ?...()方法从创建到前台可见, 这时 MainActivity执行了onStop()方法。...在 MainActivity打开 SecondActivity时,MainActivity并没有执 onDestory()方法而是执行了 onStop()方法。...因此,从 SecondActivity返回到 MainActivity时,MainActivity执行了 onRestart() 方法。...单击退出Activity按钮,MainActivity将会结束自己,并且可以在LogCat 窗口看到如下图所示的输出: ? 从该示例可以看到,各生命周期方法的调用完全符合前面所讲。
其核心示例代码如下: // 从MainActivity传递数据到 SecondActivityIntent intent = new Intent(MainActivity.this, SecondActivity.class...:label属性是用来指定显示在标题栏上的名称的,如桌Activity设置了该属性,则跳到该Activity页面时标题栏会显示在Activity中配置的名称,否则显示在Application中配置的名称...运行程序,在MainActivity的文本框中输入对应信息,可以看到左图所示效果。单击“注册”按钮,此时会跳转到SecondActivity界面,显示输人的信息,如右图所示。 ?...从上图中可以看出,MainActivity中输入的数据username成功地传递给SecondActivity,这就是使用Intent进行不同界面传递数据的用法。...本节学习了将简单的数据从MainActivity传递到SecondActivity,下期学习数据如何从SecondActivity回传到MainActivity。
" 3 android:label="@string/secondActivity"> 4 4、编辑MainActivity.java...文件 1 public class MainActivity extends Activity { 2 /* 定义一个字符串常量content */ 3 public static...final String CONTENT = "content"; 4 /* 定义一个字符串常量MainActivity */ 5 private static final String...super.onCreate(savedInstanceState); setContentView(R.layout.second); // 首先获得从MainActivity...类传递过来的Intent Intent intent = getIntent(); // 在MainActivity那边是setExtras(name,key)
startActivityForResult用于页面间的跳转并回传数据,比如商城类的App下单时会有选择地址,选择之后地址更新。...setResult(2, intent); finish(); } }); setResult方法必须在页面finish之前执行 从源码注释中可以看出...package com.yechaoa.startactforresult; import android.content.Intent; import android.support.v7.app.AppCompatActivity...; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity...; import android.os.Bundle; import android.view.View; public class SecondActivity extends AppCompatActivity
上一节学习了将简单的数据从MainActivity传递到SecondActivity,本节一起来学习数据如何从SecondActivity回传到MainActivity。...关于启动Activity并回传数据的核心代码如下所示: // 启动SecondActivity Intent intent = new Intent(MainActivity.this,...SecondActivity.class); startActivityForResult(intent, 1); // 从SecondActivity返回数据给MainActivity...然后是在启动SecondActivity的MainActivity中重写onActivityResult()方法,实现获取返回的数据,核心代码如下: // 处理SecondActivity返回来的数据...本节和上一节分别学习了简单数据在Activity之间的传递,下期一起来学习复杂数据的传递。
1传递数据到界面2 创建second_layout xml文件; 创建SecondActivity类文件,继承自Activity 在AndroidManifest.xml做下注册; 在第一个界面定义数据...,传递到第二个界面,借助于Bundle对象; 在第二个界面接受数据; 从界面2回传数据到界面1,这个我做了下简化; 1.主界面的xml配置文件如下: 在这里插入代码片`android:layout_height="wrap_content" android:text="界面2的按钮,回传数据"/> 复制 4.第二个界面的java文件...android:name=".MainActivity" android:exported="true"> ..." /> android:name=".SecondActivity
MainActivity布局(activity_main.xml) android="http://schemas.android.com/apk/res/android...Auto-generated constructor stub mMsg = msg; } public String getMsg(){ return mMsg; } } 这个类很简单,构造时传进去一个字符串...3、在要接收消息的页面注册EventBus: 在上面的GIF图片的演示中,大家也可以看到,我们是要在MainActivity中接收发过来的消息的,所以我们在MainActivity中注册消息。...; import android.os.Bundle; import android.view.View; import android.widget.Button; public class SecondActivity...在MainActivity中重写onEventMainThread(FirstEvent event),参数就是我们自己定义的类: 在收到Event实例后,我们将其中携带的消息取出,一方面Toast出去
实际上,Activity,Service和Broadcast Receiver这三种核心组件都需要使用Intent来激活。...类似的,传递给Context.bindService()方法可以在调用所在的组件和目标service之间建立一种连接。...addCategory()将种类添加到Intent中,removeCategory()将种类从Intent中移除上次添加的种类和getCategories()获取所有种类。...Flags(标记):用来指定Android系统如何启动activity,还有启动了activity后如何对待它。所有这些都定义在Intent类中。...AndroidManifest.xml在传递过去的SecondActivity中要说明 android:
现在来创建 MainActivity 的视图, 先选中项目的 Resources/layout 目录, 在菜单栏上选择 File -> New -> File , 在弹出的新建文件对话框中选择 Android...在 MainActivity.cs 文件中的 base.OnCreate(bundle) 下面加入下面一句代码, 让 MainActivity 使用 MainActivityLayout : this.SetContentView...使用 Intent 启动 Activity 并传递参数 如果现在运行程序, 将只能看到 MainActivity , 看不到 SecondActivity , 如果要想启动 SecondActivity...); // 将 ExtraMessage 显示在 TextView 上 var textView = this.FindViewById(Resource.Id.MessageTextView...点击 Send 按钮, 会启动 SecondActivity , 并将输入的信息显示在界面上: ?
领取专属 10元无门槛券
手把手带您无忧上云