AndroidStdio1_4
rec目录下建立menu得文件夹
在menu文件夹下建立menu
可以看见自动创建了
在布局文件内写两个item,
两个菜单项
Ctrl+O重写方法
重写成如图所示
public class FirstActivity extends AppCompatActivity {
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main,menu);
return true;
}
#这端代码是相应菜单事件的,item.getItemId()调用这个方法来判断逻辑.也是需要重写这个方法
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.add_item:
Toast.makeText(this,"you clicked Add",
Toast.LENGTH_SHORT).show();
break;
case R.id.remove_item:
Toast.makeText(this,"you clikedRemove",
Toast.LENGTH_SHORT).show();
break;
default:
}
return true;
}
通过getMenuLnter方法得到MenuLNflater对象,再调用它的inflater方法给当前活动创建菜单.两个参数,一个指定用什么资源文件.第二个参数是指定我们的菜单项加到哪一个Menu对象里面
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main,menu);
return true;
}
直接用了menu参数,这个方法返回true,表示允许创建菜单显示
右上三点
点击以后
如何销毁一个活动.摁返回就可以.也可以写一个方法finish()方法,如图所示
创建一个新活动
活动2
我是不是喝醉了,这是什么截图.自动生成的代码
可以看的出来
创建一个按钮,Button 2
可以看见,在清单文件内.已经注册上活动2了
此时引入新概念intent,各组件之间交互的一种重要方式.
intent函数有多个函数的重载.
如何使用,在Activity类里面专门有一个startActivity()方法就可以启动目标活动.
首先先构建一个intent,传入FirstActivity.this作为上下文,传入SecondActiviy.this作为目标活动.此时不放图了
使用隐式intent,并不明确指出我们启动哪一个活动.
而是指定一系列更为抽象的action和category等信息.
然后系统自己分析.
以上就是添加,能够响应当前活动的action和category.
同时能够匹配上Intent
修改点击事件,使用Intent的另一个构造函数.
将anction的字符串传了进去.能够启动action的活动.
但是这个地方没有看法哦category.
因为这个式默认的catgory
现在再来添加一个category
报错,没有可以响应的category
所以再添加一个category
还可以调用其它应用程序.
修改代码,让它打开一个网站.
指定action的action是VIEW.
通过Uri.parse()将一个网址字符串解析为Uri对象.
再调用intent的setData()方法将对象传递出去.
创建一个新的活动
把里面的东西换成
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/button_3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button 3"
/>
</LinearLayout>
活动和界面都有了
与此对应,我们还可以在<intent-filter>标签中再配置一个<data>标签,用于更精确地指定当前活动能够响应什么类型的数据。<data>标签中主要可以配置以下内容。
❑ android:scheme。用于指定数据的协议部分,如上例中的http部分。
❑ android:host。用于指定数据的主机名部分,如上例中的www.baidu.com部分。
❑ android:port。用于指定数据的端口部分,一般紧随在主机名之后。
❑ android:path。用于指定主机名和端口之后的部分,如一段网址中跟在域名之后的内容。
❑ android:mimeType。用于指定可以处理的数据类型,允许使用通配符的方式进行指定。
只有<data>标签中指定的内容和Intent中携带的Data完全一致时,当前活动才能够响应该Intent。不过一般在<data>标签中都不会指定过多的内容,如上面浏览器示例中,其实只需要指定android:scheme为http,就可以响应所有的http协议的Intent了。
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION DIAL);
intent.setData(Uri.parse("tel:10086"));
startActivity(intent);
}
});
系统拨号界面
- java学习:eclipse + Weblogic 12c + svn 集成开发环境搭建
- Docker容器学习梳理--容器登陆方法梳理(attach、exec、nsenter)
- java学习:调用 java web service
- java学习:数据增删改查、存储过程调用及事务处理
- 极客手工:自制51四驱无线遥控小车
- flash:二次贝塞尔曲线应用-生成飞机路径示意图
- 微信小程序重磅功能上线!一键连Wi-Fi/手机变门禁卡
- MySQL下载安装、基本配置、问题处理
- windows下命令行模式中cd命令无效的原因
- 分布式和集群区别?什么是云计算平台?分布式的应用场景?
- 中国移动也要搞自动驾驶,没了SIM卡怎么耍花样?
- python并发编程之多进程理论部分
- 使用concurrent.futures模块并发,实现进程池、线程池
- 人工智能与医疗
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- nginx(一) 基础知识
- kubernetes(十三) k8s 集群监控
- TestNG跑个Demo并打个Jar包
- 01-Ansible基础学习
- 02-Ansible入门进阶
- 接口自动化框架pyface详细介绍
- JVM字节码与Java代码层调优
- kubernetes(十四) 基于kubernetes的jenkins持续集成
- 2020测试工具索引
- 测试同学动手搭个简易web开发项目
- kubernetes(十五) kubernetes 运维
- JVM层GC调优(下)
- pytest封神之路第一步 tep介绍
- kubernetes(十六) k8s 弹性伸缩
- Mockito鸡尾酒第一杯 Java单测Mock