Android studio核心activity——intent
任务
在Android studio上新建一个project,在一个Activity用三种
显示Intent
打开另一个Activity。并练习采用隐示Intent
方式打开一个Activity。
一、activity 入门
1、什么是activity?
Activity 是 Android 组件中最基本最常见的四大组件。
(Activity,Service,Content Provider,BroadcastReceiver)
简单而言,activity就是布满整个窗口或者悬浮于其他窗口上的交互界面。一个应用程序通常由多个activity构成。每个activity都会在Androidmanifest.xml配置对应的节点,节点内容如下;
代码如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.helloworld">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="world"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.HelloWorld">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
新建一个工程。看 MainAtivity.java 和 layout 及 AndroidMainfest.xml 的关系,以及工程文件 的结构
资源文件
程序配置文件
利用@string 的方式配置 hello world
2、activity绑定自定义视图(layout)
- mainactivity中的oncreate中的视图绑定;
- 绑定一个自定的视图。
新建一个my_activity视图,并在面activity中绑定;
自定义名称;
点击OK后界面;
在mainactivity中绑定;
添加按钮;
run,查看结果;
二、intent入门
1、启动另一个activity
定义一个新的activity;选择basic activity
定义界面名称;
创建后如图;
在 mainActivity 的 layout 中设置一个按钮来启动这个 acitvity,设置按钮的 ID;
设置ID
代码如图;
左侧有相应得配置信息;
2、两个组件中的通信
activity栈
intent(意图)
Android 中提供了 Intent 机制来协助应用间的交互与通讯,或者采用更准确的说法是,Intent 不仅可 用于应用程序之间,也可用于应用程序内部的 activity, service 和 broadcast receiver 之间的交互。
Intent 这个英语单词的本意是“目的、意向、意图”。 Intent 是一种运行时绑定(runtime binding)机制,它能在程序运行的过程中连接两个不同的组件。 通过 Intent,你的程序可以向 Android 表达某种请求或者意愿,Android 会根据意愿的内容选择适当的组 件来响应。
intent相关属性
- component(组件):目的组件 ;
- action(动作):用来表现意图的行动 ;
- category(类别):用来表现动作的类别 ;
- data(数据):表示与动作要操纵的数据 ;
- type(数据类型):对于 data 范例的描写
- extras(扩展信息):扩展信息
在 mainActivtiy.java 中代码
为 Android 控件绑定一个点击事件;
方法 1:通过 id 获得控件,在通过绑定监听器使用匿名内部类的方法实现;
方法 2:直接在控件上绑定一个 onClick 的事件,在 MainActivity 中创建对应 public 方法;
这里我没有去测试,粘贴的教程图片,大家可以按照上述方法去试试。
3、intent(意图)
intent可以划分为显示意图和隐式意图。
3.1 显示意图
显示 Intent:对于明确指出了组件名称的 Intent,我们称为显示意图
三种显示intent
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private Button btn_start1;
private Button btn_start2;
private Button btn_start3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_start1 = (Button) findViewById(R.id.btn_start1);
btn_start2 = (Button) findViewById(R.id.btn_start2);
btn_start3 = (Button) findViewById(R.id.btn_start3);
btn_start1.setOnClickListener(this);
btn_start2.setOnClickListener(this);
btn_start3.setOnClickListener(this);
启动一个应用的主界面;
根据要打开的 activity 是否是主界面,在 AndroidManifest.xml 中配置 export=true;
- 在 Activity 中该属性用来标示:当前 Activity 是否可以被另一个 Application 的组件启动:true 允 许被启动;false 不允许被启动。
- 主界面默认 true,其他 activity 默认为 false。比如列表都能打开其他应用程序。并采用了隐示意图 的方式
3.2 隐式意图
在上一个例子打开的 OtherActivity 中采用隐示 Intent 打开另一个一个 activity;
三、总结与参考资料
1、总结
对activity的界面有了更加深刻的认识,也知道了如何进行界面的转换。在此过程中,我也有很多不懂得地方,基本都是按照教程来做得,然后不懂的地方就Baidu解决的。共同努力,共同进步!
2、参考资料
Activity绑定自定义视图.
The activity must be exported or contain an intent-filter.