前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AndroidStdio1_4

AndroidStdio1_4

作者头像
云深无际
发布2020-08-12 10:04:59
4610
发布2020-08-12 10:04:59
举报
文章被收录于专栏:云深之无迹云深之无迹

rec目录下建立menu得文件夹

在menu文件夹下建立menu

可以看见自动创建了

在布局文件内写两个item,

两个菜单项

Ctrl+O重写方法

重写成如图所示

代码语言:javascript
复制
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对象里面

代码语言:javascript
复制
    @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()方法将对象传递出去.

创建一个新的活动

把里面的东西换成

代码语言:javascript
复制
<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了。

代码语言:javascript
复制
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);
            }
        });

系统拨号界面

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云深之无迹 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档