android学习笔记(4)Intent初级学习

太过爱你忘了你带给我的痛 2022-08-03 13:42 315阅读 0赞

这节课程讲解了intent,是对动作的抽象描述,是意图的意思,建立一个intent就可以给一个动作给他来执行.inten是android开发的精髓所在.
一,点击按钮实现给一个指定号码打电话

  1. btn1.setOnClickListener(listener);
  2. private OnClickListener listener =new OnClickListener() {
  3. Intent intent = new Intent();
  4. @Override
  5. public void onClick(View v) {
  6. intent.setAction(Intent.ACTION_CALL); //给intent赋与打电话的动作
  7. intent.setData(Uri.parse("tel:110")); //设置电话号码
  8. startActivity(intent); //启动
  9. Toast.makeText(MainActivity.this,"打电话给110",Toast.LENGTH_SHORT).show();//显示提示
  10. }
  11. };

二,点击按钮实现给一个指定号码发短信

  1. btn1.setOnClickListener(listener);
  2. private OnClickListener listener =new OnClickListener() {
  3. Intent intent = new Intent();
  4. @Override
  5. public void onClick(View v) {
  6. case R.id.button1:
  7. intent.setAction(Intent.ACTION_SENDTO);
  8. intent.setData(Uri.parse("smsto:110"));
  9. intent.putExtra("sms_body", "没事,骚扰下~~"); //注意格式
  10. startActivity(intent);
  11. Toast.makeText(MainActivity.this,"发短信给110",Toast.LENGTH_SHORT).show();//显示提示
  12. }
  13. };

三,在一个activity中启动另一个activity
一套activity最基本的要包括这些内容:
1,activity类(xxActivity.java)
2,布局文件(layout/xxx.xml)
3,在配置文件中注册这个activity


………………

有了这些基本要素,就可以在另一个activity中调用这个activity了.

  1. //为了方便,把这个跳转放在一个button点击事件中去.
  2. Intent intent=new Intent();
  3. intent.setClass(MainActivity.this,SecondActivity.class);//参1是packageContext,一般是指向MainActivity自己;参2是cls指向要调用的activity的class
  4. startActivity(intent);

配置文件加入:

  1. <activity android:name=".SecondActivity" //activity的名字相同
  2. android:label="@string/app_name"> //根据需要自行修改
  3. </activity>

以上这些都是最基本的内容,如果你的SecondActivity中有功能,运行时就能实现从MainActivity跳转到SecondActivity去执行它的功能.接下来就是怎么在activity之间传递数据呢?
发送方:

  1. Intent intent=new Intent();
  2. intent.setclass(MainActivity.this,SecondActivity.class);
  3. intent.putExtra("str","hello"); //putExtra();可以发送许多类型的数据!
  4. startActivity(intent);

接收方:

  1. Intent intent=getIntent();
  2. Bundle bundle=intent.getExtras(); //bundle是什么鬼?评论上补充.
  3. String str=bundle.getString("str");//字符就存进了str中了

接着就有意思了,上面可以理解为:实现点击一个按钮跳转到另一个界面去,接下来得在另一个界面中点击一个按钮又跳回来,并且还要返回一个数据.

在MainActivity中定义:

  1. private final static int REQUEST_CODE=1; //相当于一个专用暗号,为下面定义的intent所有,如果定义了多个Intent就要分配 不同的暗号,为什么要分配暗号?就是为了一对一,防止多对一或一对多的情况出现

按钮监听中写:

  1. Intent intent=new Intent();
  2. intent.setclass(MainActivity.this,SecondActivity.class);
  3. intent.putExtra("str","hello");
  4. //startActivity(intent);
  5. startActivityForResult(intent,REQUEST_CODE); //startActivity(intent);是无返回值的,这个就有.但要写一个 //onActivityResult方法如下
  6. protected void onActivityResult(int requestCode,int resultCode,Intent data)//学会用方法构造器构造它!
  7. {
  8. if(requestCode==REQUEST_CODE)//防止多对一
  9. {
  10. if(resultCode==secondActivity.RESULT_CODE)//防止一对多
  11. {
  12. Bundle bundle=data.getExtras();
  13. String str=bundle.getString("back");
  14. Toast.makeText(MainActivity.this,str,Toast.LENGTH_LONG).show();
  15. }
  16. }
  17. }

在SecondActivity中定义:

  1. public final static int RESULT_CODE=1;

按钮监听中写:

  1. Intent intent=new Intemt();
  2. intent.putExtra("back","Back Data");
  3. setResult(RESULT_CODE,intent); //设置返回值
  4. finish(); //kill当前的activity

这样就OK啦!想一想,安卓的软件是不是很容易?

发表评论

表情:
评论列表 (有 0 条评论,315人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Android学习笔记----Intent

    下面讲解一下Android中的Intent的内容 Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作、动作涉及数据、附加数