Android-Intent
来源:互联网 发布:网络好歌推荐100首 编辑:程序博客网 时间:2024/05/29 18:11
Android-Intent
百度百科里的介绍如下
Intent(意图)主要是解决Android应用的各项组件之间的通讯
Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用
因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦
下面使用Intent实现拨打电话,点击Button,即拨打110
需要在AndroidManifest.xml里添加权限
<uses-permission android:name="android.permission.CALL_PHONE"/>
private OnClickListener listener = new OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent();intent.setAction(Intent.ACTION_CALL);intent.setData(Uri.parse("tel:110"));startActivity(intent);}};
发送信息需要添加权限
<uses-permission android:name="android.permission.SEND_SMS"/>
private OnClickListener listener = new OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent();intent.setAction(Intent.ACTION_SENDTO);intent.setData(Uri.parse("smsto:5554"));intent.putExtra("sms_body", "Welcome to suancaiyu!");startActivity(intent);}};
下面用Intent来启动新的Activity,并实现传递参数和返回参数的功能
第一个Activity向第二个Activity传递一个字符串,第二个Activity结束后向第一个Activity返回一个参数
MainActivity.java
public class MainActivity extends Activity {private Button mainbnt = null; private static final int REQUEST_CODE=1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mainbnt = (Button) findViewById(R.id.btn);mainbnt.setOnClickListener(listener);}private OnClickListener listener = new OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent();intent.setClass(MainActivity.this,SecondActivity.class);intent.putExtra("str", "suancaiyu");//startActivity(intent);startActivityForResult(intent,REQUEST_CODE);}};@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {if(requestCode==REQUEST_CODE){if(resultCode==SecondActivity.RESULT_CODE){Bundle bundle=data.getExtras();String str=bundle.getString("back");Toast.makeText(MainActivity.this, str, Toast.LENGTH_LONG).show(); }}}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}
SecondActivity.java
public class SecondActivity extends Activity {static final int RESULT_CODE=1; private Button secondbtn=null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.second);Intent intent=getIntent();Bundle bundle=intent.getExtras();String str=bundle.getString("str"); Toast.makeText(SecondActivity.this, str, Toast.LENGTH_LONG).show(); secondbtn=(Button)findViewById(R.id.secondbtn); secondbtn.setOnClickListener(listener);}private OnClickListener listener=new OnClickListener(){@Overridepublic void onClick(View v) {Intent intent=new Intent();intent.putExtra("back", "Back Data");setResult(RESULT_CODE,intent);finish();}};}
注意需要在AndroidManifest.xml中注册第二个activity
运行图示如下
0 0
- Android intent intent-filter
- Android intent intent-filter
- Android intent intent-filter
- Android intent
- Android Intent
- Android Intent
- android Intent
- android intent
- android intent
- android intent
- Android------Intent
- android Intent
- Android Intent
- android intent
- Android Intent
- android intent
- Android Intent
- android --------intent
- 设计模式之简单工厂模式
- Jump Game II
- 【C++学习】vector的使用,输入一串数字,输出相邻和---ShinePans
- Displaytag实现分页
- 杭电 2095
- Android-Intent
- RL-TCPNet的移植与使用简介
- 真机或Start BlueStacks在Eclipse中找不着时
- 性能测试之LoadRunner11 破解
- 关于HTML中的滚动条/去掉滚动条
- 读《草样年华1》
- lua中数学库
- HreoWinGauge2.0组件集应用示例----数据处理
- Cracking the Code Interview (1): 跟踪数组的中位数