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教程
- 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 文档注释
- BOSS直聘招聘信息获取之爬虫程序数据处理
- BOSS直聘招聘信息获取之爬虫程序分析
- 历时4个多月,学习了这 66 个CSS 特效
- ArrayList、LinkedList哪家强,据说90%人都不知道
- Windows创建克隆隐藏账号
- 学员分享-aspera踩坑记录
- BOSS直聘招聘信息获取之爬虫工具分析
- 把你的shiny网页工具部署在云服务器
- 面试中的路由问题
- BOSS直聘招聘信息获取之使用webdriver进行爬取
- es6中class的一些基础知识和es5语法的对比
- Windows 系统常用命令行命令(一):前言
- Vue项目使用mt-picker实现省市区三级联动踩坑记录
- Windows 系统常用命令行命令(二):路径与文件夹操作
- 微信小程序订阅消息推送