资讯专栏INFORMATION COLUMN

安卓开发学习笔记(四):Android Stuidio无法实现隐式Intent是为什么?

zombieda / 801人阅读

摘要:这样的话,才可以进行正确地调用主活动当中的方法,实现隐式跳转。如果在当中仅仅写上的话,这个活动在进行运行的时候就不会实现正常的跳转,从而销毁活动,造成失灵。这就是我们无法实现隐式的原因。

一.首先检查我们的代码:

FirstActivity.java(主活动程序当中的代码):
Button3监听器后面的代码就是我们隐式Intent的业务逻辑所在了,大家可以往下面看看,大概在代码的第57行。
 1 package com.example.lenovo.activitytest;
 2 
 3 import android.support.v7.app.AppCompatActivity;
 4 import android.os.Bundle;
 5 import android.view.Menu;
 6 import android.view.MenuItem;
 7 import android.view.View;
 8 import android.widget.Button;
 9 import android.widget.Toast;
10 import android.content.Intent;
11 
12 public class FirstActivity extends AppCompatActivity {
13     @Override
14     public boolean onCreateOptionsMenu(Menu menu) {
15        getMenuInflater().inflate(R.menu.main,menu);//第一个参数表示我们通过哪一个资源来引用菜单当中的全部资源
16         // 第二个参数表示菜单被添加到哪一个对象当中
17        return true;//这句话表示我们创建的菜单是可以显示出来的,但是仅仅显示还是不够的,还需要真正地让菜单上的选项起作用。
18     }
19     @Override
20     public boolean onOptionsItemSelected(MenuItem item)//这里定义菜单为一个响应式事件
21     {
22         switch (item.getItemId())
23         {
24             case(R.id.add_item):
25 
26                 Toast.makeText(this,"你选择了增加",Toast.LENGTH_SHORT).show();
27                 break;
28             case(R.id.remove_item):
29                 Toast.makeText(this,"你选择了减少",Toast.LENGTH_SHORT).show();
30                 break;
31                 default://这个关键字是可以不要的
32         }
33         return true;//将菜单当中的显示出来
34     }
35     @Override
36     protected void onCreate(Bundle savedInstanceState) {
37         super.onCreate(savedInstanceState);
38         setContentView(R.layout.first_layout);
39         Button button1=(Button)findViewById(R.id.button_1);
40         button1.setOnClickListener(new View.OnClickListener() {
41             @Override
42             public void onClick(View v) {
43                 Toast toast=Toast.makeText(FirstActivity.this,null,Toast.LENGTH_SHORT);
44                 toast.setText("只有傻逼才会按这个按钮");
45                 toast.show();//利用这种方法就可以去掉前面的APP名称了,而且这种创建对象的方法也更可以令人理解
46             }
47         });
48         Button button2=(Button)findViewById(R.id.button_2);
49         button2.setOnClickListener(new View.OnClickListener() {
50             @Override
51             public void onClick(View v) {
52                 Toast.makeText(FirstActivity.this,"只有不学习的人才会按这个按钮",
53                         Toast.LENGTH_SHORT).show();
54             }
55         });
56         Button button4=(Button)findViewById(R.id.button_4);
57         button4.setOnClickListener(new View.OnClickListener() {
58             @Override
59             public void onClick(View v) {
60                /*Intent intent=new Intent(FirstActivity.this,SecondActivity.class);
61                startActivity(intent);
62                我们这里已经使用了显示intent,现在开始进行隐式intent的使用,首先应该在xml当中进申明
63                *///这就是所谓的显示intent了,相对于来说这已经是十分容易实现的了。
64                 Intent intent=new Intent("com.example.lenovo.activitytest.ACTION_START");
65                 startActivity(intent);
66             }
67         });
68         Button button3=(Button)findViewById(R.id.button_3);
69         button3.setOnClickListener(new View.OnClickListener() {
70             @Override
71             public void onClick(View v) {
72                Intent intent=new Intent(FirstActivity.this,SecondActivity.class);
73                startActivity(intent);
74             }
75         });
76 
77 
78 
79     }
80 
81 }

二.注册在主活动上的代码需要补上:

 

 1 
 2 
 4 
 5     
12         
15             
16                 
17 
18                 
19             
20         
21         
23             
24                 
25                     
26                 
27             
28         
29     
30 
31 

 

从中我们可以看到我们注册在XML界面上,后面的代码为,action中间name的名称一定要注意。这个里面的名称是不能够乱写的,这里名称将会和刚刚前面主活动当中的代码相呼应:

 1         Button button4=(Button)findViewById(R.id.button_4);
 2         button4.setOnClickListener(new View.OnClickListener() {
 3             @Override
 4             public void onClick(View v) {
 5                /*Intent intent=new Intent(FirstActivity.this,SecondActivity.class);
 6                startActivity(intent);
 7                我们这里已经使用了显示intent,现在开始进行隐式intent的使用,首先应该在xml当中进申明
 8                *///这就是所谓的显示intent了,相对于来说这已经是十分容易实现的了。
 9                 Intent intent=new Intent("com.example.lenovo.activitytest.ACTION_START");
10                 startActivity(intent);
11             }
12         });

因此我们可以看到,里面的字符串均是com.example.lenovo.activitytest,不能够乱写。这行字符串是怎么得到的呢?我们可以在主活动当中的第一行代码当中可以找到其代码为:package com.example.lenovo.activitytest。这样的话,才可以进行正确地调用主活动当中的方法,实现隐式intent跳转。如果在xml当中仅仅写上:com.example.lenovo.activitytest.ACTION_START的话,这个活动在APP进行运行的时候就不会实现正常的跳转,从而销毁活动,造成失灵。这就是我们Android Stuidio无法实现隐式Intent的原因。

 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/2650.html

相关文章

  • 安卓开发学习笔记(三):Android Stuidio无法引用Intent来创建对象,出现canno

    笔者在进行安卓开发时,发现自己的代码语法完全没有问题。尤其是创建intent对象的时候,语法完全是正确的,但是Android Stuidio却显示报错,Intent类显示为红色,如图所示: 代码如下所示: 1 Button button2=(Button)findViewById(R.id.button_2); 2 button2.setOnClick...

    番茄西红柿 评论0 收藏0
  • 安卓开发学习笔记(一):如何用Android Stuidio导出apk文件?

    摘要:,是你自己设定的密码,由于个人习惯我把和都设成了一样的。这样的话就可以方便自己下次再进行密码的输入了。默认的选项则不改变。一,首先,我们在菜单栏上找到这一栏: 然后点击build,再点击generate apk,然后出现以下界面:   由于之前我们并没有进行apk文件的生成,因此需要这个apk key做一个验证,以防您的app上线之后被别人盗用,同时证明自己对这个app的拥有权。key s...

    jeffrey_up 评论0 收藏0
  • 安卓开发学习笔记(五):史上最简单且华丽地实现Android Stutio当中Webview控件ht

    摘要:一我们先在当中自定义一个代码如下可以看到,这里我们使用了现行布局以及控件,告诉我们这个控件是定义在第二个主活动当中的。这个标识符有利于我们在第二个主活动当中对这个控件的布局进行调用。一.我们先在XML当中自定义一个webview(Second_layout.xml) 代码如下: 可以看到,这里我们使用了现行布局以及WebView控件,tools:context=...

    _ivan 评论0 收藏0
  • 学习安卓开发[4]

    摘要:在上一篇学习安卓开发使用显示列表中了解了在进行列表展示时的使用,本次记录的是在应用中如何通过隐式调用其它应用的功能,比如发短信打电话拍照等隐式短信判断是否存在相关相机功能声明隐式对象用来向操作系统说明需要处理的任务。在上一篇学习安卓开发[3] - 使用RecyclerView显示列表中了解了在进行列表展示时RecyclerView的使用,本次记录的是在应用中如何通过隐式Intent调用其它应...

    gitmilk 评论0 收藏0
  • 安卓开发学习笔记(七):仿写腾讯QQ登录注册界面

    摘要:上面这一段代码主要是用到了活动的跳转,不然登录是登录不进去的这里因为我们直接使用了当中活动的跳转。点击登录就会立刻跳转到下一个界面进行登录,当然简介,是的直接子类。这些标签都需要类的支持,但是并不包括所有的标签。这段代码的关键主要是在我们的相对布局以及线性布局上面,我们首先在总体布局里设置为线性布局,然后再在里面设置为相对布局,这是一个十分常见的XML布局模式。 废话不多说,直接上代码:一....

    geekzhou 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<