Intent的通信
来源:互联网 发布:unity3d工程师工资 编辑:程序博客网 时间:2024/06/14 02:16
Intent一般可被用于启动活动,启动服务,以及发送广播等场景,由于服务,广播。intent的用法分为两种,隐式启动和显示启动。
1.启动一个界面语法:
Intent intent=new Intent(this,next.class)。this代表的是我们一个当前的Activity,next.class表示的是即将跳转的activity。
2.显示启动界面,发短信,打电话。
public class activity_phone extends Activity { private Button mBtnPhone; private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout_phone); textView = (TextView) findViewById(R.id.textView); mBtnPhone = (Button) findViewById(R.id.button_phone); mBtnPhone.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.setAction(intent.ACTION_CALL); intent.setData(Uri.parse("tel:13893146092")); startActivity(intent); } }); Button button = (Button) findViewById(R.id.button_phone_01); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.setAction(intent.ACTION_DIAL); intent.setData(Uri.parse("tel:13893146092")); startActivity(intent); } }); Button btn_sms = (Button) findViewById(R.id.button_sms); btn_sms.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.setAction(intent.ACTION_SENDTO); intent.setData(Uri.parse("smsto:10086")); intent.putExtra("haha", "你好"); startActivity(intent); } }); Button button02 = (Button) findViewById(R.id.button_web); button02.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.setAction(intent.ACTION_VIEW); intent.setData(Uri.parse("http://www.baidu.com")); startActivity(intent); } }); Button button_hide = (Button) findViewById(R.id.button_hide); button_hide.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent("com.start.mainActivity"); intent.putExtra("message", textView.getText().toString()); startActivity(intent); } }); }}
3.intent界面之间的通信。
第一步:先定义一个intent来通信(intent(this,next))
第二步:调用startActivityForResult(intent, 3308);来启动intent。后面的参数自己设置的端口号。
第三步:在第一二个界面接受intent,getIntent();
第四部:封装返回的数据,putExtra(key,values)遵循hashmap的格式。然后setResult(RESULT_OK, intent);最后销毁finish()活动。
第五步:第一个界面进行接收数据,重写onActivityResult()方法。判断,返回的code是否是发送的。然后在进行解析数据。
public class MainActivity extends Activity { private Intent intent; private Intent intentReceive; private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView = (TextView) findViewById(R.id.textView); intent = new Intent(MainActivity.this, Activity_next.class); Button btn = (Button) findViewById(R.id.button_go); intentReceive = getIntent(); textView.setText(intentReceive.getStringExtra("message")); btn.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View v) { startActivityForResult(intent, 3308); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK) { String message = data.getStringExtra("message"); textView.setText(message); Log.d("mainActivity", message); } }
第二个界面
public class Activity_next extends Activity { private String data; private TextView textView; Intent intent; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout_next); textView = (TextView) findViewById(R.id.editText); Button btn = (Button) findViewById(R.id.button_back); btn.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View v) { intent = getIntent(); getIntent().putExtra("message", textView.getText().toString()); setResult(RESULT_OK, intent); Activity_next.this.finish(); } }); }}
0 0
- Intent的通信
- Activity之间的通信(Intent)
- Android的组件通信:intent
- Android 通信的桥梁 Intent
- intent 和 Broadcast Receiver之间的通信
- 通信组件之Intent的基本使用
- **ANDROID**Intent和IntentFilter的进行通信
- 通信组件之Intent的复杂数据的传递
- Android Intent 通信
- Android组件通信--Intent
- Android通信组件Intent
- 肤浅谈Intent通信
- android intent 组件通信
- Intent给Activity通信
- android:cha1.2 通过Intent实现Activity之间的通信
- Intent、Bundle——实现Activity之间的通信
- 利用Intent进行Activity之间的通信(1)
- 利用Intent进行Activity之间的通信(2)
- Linux FHS 之三目录
- 【读书笔记:C++ primer plus 第六版 中文版】第15章 友元、异常和其他
- Linux系统环境变量
- ios 防止按钮快速点击造成多次响应的避免方法。
- IOS-7-纪念一下刚刚接到的第一份offer(以下是面试遇到的问题)
- Intent的通信
- 在mac上交叉编译mono的脚本,mac x64,iphone armv7,iphone armv7s,android armv7-a
- Linux系统编程静态库和共享库
- CSUOJ 1333 Funny Car Racing (spfa算法)
- 自定义函数实现百度搜索关键字在网页中匹配字符高亮显示效果
- 使用数据库管理工具navicat----命令行界面
- 安卓从sdcard中读取db文件
- [全职] 摩根大通-量化金融-北京
- Linux系统程序员的错误处理