做网站的html代码格式,网页制作公司有哪些职位,律师所网站建设,公司装修放假期间有没有工资一、Intent
显式Intent#xff1a;通过组件名指定启动的目标组件,比如startActivity(new Intent(A.this,B.class)); 每次启动的组件只有一个~隐式Intent:不指定组件名,而指定Intent的Action,Data,或Category,当我们启动组件时, 会去匹配AndroidManifest.xml相关组件的Intent-…一、Intent
显式Intent通过组件名指定启动的目标组件,比如startActivity(new Intent(A.this,B.class)); 每次启动的组件只有一个~隐式Intent:不指定组件名,而指定Intent的Action,Data,或Category,当我们启动组件时, 会去匹配AndroidManifest.xml相关组件的Intent-filter,逐一匹配出满足属性的组件,当不止一个满足时, 会弹出一个让我们选择启动哪个的对话框
1、点击按钮返回Home界面
Intent it new Intent();
it.setAction(Intent.ACTION_MAIN);
it.addCategory(Intent.CATEGORY_HOME);
startActivity(it);
2、点击按钮打开百度页面
Intent it new Intent();
it.setAction(Intent.ACTION_VIEW);
it.setData(Uri.parse(http://www.baidu.com));
startActivity(it);
二、Intent数据的传递 通过调用Intent的putExtra()方法存入数据然后在获得Intent后调用getXxxExtra获得 对应类型的数据传递多个的话可以使用Bundle对象作为容器通过调用Bundle的putXxx先将数据 存储到Bundle中然后调用Intent的putExtras()方法将Bundle存入Intent中然后获得Intent以后 调用getExtras()获得Bundle容器然后调用其getXXX获取对应的数据 另外数据存储有点类似于Map的键值1、Intent传递数组 写入数组bd.putStringArray(StringArray, new String[]{呵呵,哈哈}); //可把StringArray换成其他数据类型,比如int,float等等... 读取数组String[] str bd.getStringArray(StringArray)
2、Intent传递集合
a、List基本数据类型或String 写入集合 intent.putStringArrayListExtra(name, value) intent.putIntegerArrayListExtra(name, value) 读取集合 intent.getStringArrayListExtra(name) intent.getIntegerArrayListExtra(name) b、List Object 将list强转成Serializable类型,然后传入(可用Bundle做媒介) 写入集合putExtras(key, (Serializable)list) 读取集合(ListObject) getIntent().getSerializable(key) Object类需要实现Serializable接口 c、MapString, Object,或更复杂的 解决方法是外层套个List //传递复杂些的参数 MapString, Object map1 new HashMapString, Object(); map1.put(key1, value1); map1.put(key2, value2); ListMapString, Object list new ArrayListMapString, Object(); list.add(map1); Intent intent new Intent(); intent.setClass(MainActivity.this,ComplexActivity.class); Bundle bundle new Bundle(); //须定义一个list用于在budnle中传递需要传递的ArrayListObject,这个是必须要的 ArrayList bundlelist new ArrayList(); bundlelist.add(list); bundle.putParcelableArrayList(list,bundlelist); intent.putExtras(bundle); startActivity(intent);
3、Intent传递对象对象转换为Json字符串
public class Book{private int id;private String title;//...
}public class Author{private int id;private String name;//...
}
写入数据
Book booknew Book();
book.setTitle(Java编程思想);
Author authornew Author();
author.setId(1);
author.setName(Bruce Eckel);
book.setAuthor(author);
Intent intentnew Intent(this,SecondActivity.class);
intent.putExtra(book,new Gson().toJson(book));//Gson解析
startActivity(intent);读取数据
String bookJsongetIntent().getStringExtra(book);
Book booknew Gson().fromJson(bookJson,Book.class);Gson解析
Log.d(TAG,book title-book.getTitle());
Log.d(TAG,book author name-book.getAuthor().getName());
4、Intent传递Bitmap
Bitmap bitmap null;
Intent intent new Intent();
Bundle bundle new Bundle();
bundle.putParcelable(bitmap, bitmap);//bitmap默认实现Parcelable接口,直接传递即可
intent.putExtra(bundle, bundle);
5、使用 Application全局对象数据可以在任何地方都能获取到 Android系统在每个程序运行的时候创建一个Application对象而且只会创建一个 在AndroidManifest.xml中为我们的application标签添加:name属性 application android:name.MyApp android:icondrawable/icon android:labelstring/app_name 自定义Application类 class MyApp extends Application {private String myState;private static MyApp instance;public static MyApp getInstance(){return instance;} public String getState(){return myState;}public void setState(String s){myState s;}Overridepublic void onCreate(){onCreate();instance this;}
}
我们就可以在任意地方直接调用MyApp.getInstance()来获得Application的全局对象其他常用系统Intent合集
// //1.拨打电话 // 给移动客服10086拨打电话 Uri uri Uri.parse(tel:10086); Intent intent new Intent(Intent.ACTION_DIAL, uri); startActivity(intent);
//
//2.发送短信 // 给10086发送内容为“Hello”的短信 Uri uri Uri.parse(smsto:10086); Intent intent new Intent(Intent.ACTION_SENDTO, uri); intent.putExtra(sms_body, Hello); startActivity(intent);
//3.发送彩信相当于发送带附件的短信 Intent intent new Intent(Intent.ACTION_SEND); intent.putExtra(sms_body, Hello); Uri uri Uri.parse(content://media/external/images/media/23); intent.putExtra(Intent.EXTRA_STREAM, uri); intent.setType(image/png); startActivity(intent);
//
//4.打开浏览器: // 打开百度主页 Uri uri Uri.parse(http://www.baidu.com); Intent intent new Intent(Intent.ACTION_VIEW, uri); startActivity(intent);
//
//5.发送电子邮件:(阉割了Google服务的没戏!!!!) // 给someonedomain.com发邮件 Uri uri Uri.parse(mailto:someonedomain.com); Intent intent new Intent(Intent.ACTION_SENDTO, uri); startActivity(intent); // 给someonedomain.com发邮件发送内容为“Hello”的邮件 Intent intent new Intent(Intent.ACTION_SEND); intent.putExtra(Intent.EXTRA_EMAIL, someonedomain.com); intent.putExtra(Intent.EXTRA_SUBJECT, Subject); intent.putExtra(Intent.EXTRA_TEXT, Hello); intent.setType(text/plain); startActivity(intent); // 给多人发邮件 Intent intentnew Intent(Intent.ACTION_SEND); String[] tos {1abc.com, 2abc.com}; // 收件人 String[] ccs {3abc.com, 4abc.com}; // 抄送 String[] bccs {5abc.com, 6abc.com}; // 密送 intent.putExtra(Intent.EXTRA_EMAIL, tos); intent.putExtra(Intent.EXTRA_CC, ccs); intent.putExtra(Intent.EXTRA_BCC, bccs); intent.putExtra(Intent.EXTRA_SUBJECT, Subject); intent.putExtra(Intent.EXTRA_TEXT, Hello); intent.setType(message/rfc822); startActivity(intent);
//
//6.显示地图: // 打开Google地图中国北京位置北纬39.9东经116.3 Uri uri Uri.parse(geo:39.9,116.3); Intent intent new Intent(Intent.ACTION_VIEW, uri); startActivity(intent);
//
//7.路径规划 // 路径规划从北京某地北纬39.9东经116.3到上海某地北纬31.2东经121.4 Uri uri Uri.parse(http://maps.google.com/maps?fdsaddr39.9 116.3daddr31.2 121.4); Intent intent new Intent(Intent.ACTION_VIEW, uri); startActivity(intent);
//
//8.多媒体播放: Intent intent new Intent(Intent.ACTION_VIEW); Uri uri Uri.parse(file:///sdcard/foo.mp3); intent.setDataAndType(uri, audio/mp3); startActivity(intent);
//获取SD卡下所有音频文件,然后播放第一首- Uri uri Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI, 1); Intent intent new Intent(Intent.ACTION_VIEW, uri); startActivity(intent);
//
//9.打开摄像头拍照: // 打开拍照程序 Intent intent new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, 0); // 取出照片数据 Bundle extras intent.getExtras(); Bitmap bitmap (Bitmap) extras.get(data);
//另一种: //调用系统相机应用程序并存储拍下来的照片 Intent intent new Intent(MediaStore.ACTION_IMAGE_CAPTURE); time Calendar.getInstance().getTimeInMillis(); intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(Environment .getExternalStorageDirectory().getAbsolutePath()/tucue, time .jpg))); startActivityForResult(intent, ACTIVITY_GET_CAMERA_IMAGE);
//
//10.获取并剪切图片 // 获取并剪切图片 Intent intent new Intent(Intent.ACTION_GET_CONTENT); intent.setType(image/*); intent.putExtra(crop, true); // 开启剪切 intent.putExtra(aspectX, 1); // 剪切的宽高比为12 intent.putExtra(aspectY, 2); intent.putExtra(outputX, 20); // 保存图片的宽和高 intent.putExtra(outputY, 40); intent.putExtra(output, Uri.fromFile(new File(/mnt/sdcard/temp))); // 保存路径 intent.putExtra(outputFormat, JPEG);// 返回格式 startActivityForResult(intent, 0); // 剪切特定图片 Intent intent new Intent(com.android.camera.action.CROP); intent.setClassName(com.android.camera, com.android.camera.CropImage); intent.setData(Uri.fromFile(new File(/mnt/sdcard/temp))); intent.putExtra(outputX, 1); // 剪切的宽高比为12 intent.putExtra(outputY, 2); intent.putExtra(aspectX, 20); // 保存图片的宽和高 intent.putExtra(aspectY, 40); intent.putExtra(scale, true); intent.putExtra(noFaceDetection, true); intent.putExtra(output, Uri.parse(file:///mnt/sdcard/temp)); startActivityForResult(intent, 0);
//
//11.打开Google Market // 打开Google Market直接进入该程序的详细页面 Uri uri Uri.parse(market://details?id com.demo.app); Intent intent new Intent(Intent.ACTION_VIEW, uri); startActivity(intent);
//
//12.进入手机设置界面: // 进入无线网络设置界面其它可以举一反三 Intent intent new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS); startActivityForResult(intent, 0);
//
//13.安装apk: Uri installUri Uri.fromParts(package, xxx, null); returnIt new Intent(Intent.ACTION_PACKAGE_ADDED, installUri);
//
//14.卸载apk: Uri uri Uri.fromParts(package, strPackageName, null); Intent it new Intent(Intent.ACTION_DELETE, uri); startActivity(it);
//
//15.发送附件: Intent it new Intent(Intent.ACTION_SEND); it.putExtra(Intent.EXTRA_SUBJECT, The email subject text); it.putExtra(Intent.EXTRA_STREAM, file:///sdcard/eoe.mp3); sendIntent.setType(audio/mp3); startActivity(Intent.createChooser(it, Choose Email Client));
//
//16.进入联系人页面: Intent intent new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setData(People.CONTENT_URI); startActivity(intent);
// //17.查看指定联系人: Uri personUri ContentUris.withAppendedId(People.CONTENT_URI, info.id);//info.id联系人ID Intent intent new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setData(personUri); startActivity(intent);
//
//18.调用系统编辑添加联系人高版本SDK有效 Intent it newIntent(Intent.ACTION_INSERT_OR_EDIT); it.setType(vnd.android.cursor.item/contact); //it.setType(Contacts.CONTENT_ITEM_TYPE); it.putExtra(name,myName); it.putExtra(android.provider.Contacts.Intents.Insert.COMPANY, organization); it.putExtra(android.provider.Contacts.Intents.Insert.EMAIL,email); it.putExtra(android.provider.Contacts.Intents.Insert.PHONE,homePhone); it.putExtra(android.provider.Contacts.Intents.Insert.SECONDARY_PHONE,mobilePhone); it.putExtra( android.provider.Contacts.Intents.Insert.TERTIARY_PHONE,workPhone); it.putExtra(android.provider.Contacts.Intents.Insert.JOB_TITLE,title); startActivity(it);
//
//19.调用系统编辑添加联系人全有效 Intent intent newIntent(Intent.ACTION_INSERT_OR_EDIT); intent.setType(People.CONTENT_ITEM_TYPE); intent.putExtra(Contacts.Intents.Insert.NAME, My Name); intent.putExtra(Contacts.Intents.Insert.PHONE, 1234567890); intent.putExtra(Contacts.Intents.Insert.PHONE_TYPE,Contacts.PhonesColumns.TYPE_MOBILE); intent.putExtra(Contacts.Intents.Insert.EMAIL, comcom.com); intent.putExtra(Contacts.Intents.Insert.EMAIL_TYPE, Contacts.ContactMethodsColumns.TYPE_WORK); startActivity(intent);
//
//20.打开另一程序 Intent i new Intent(); ComponentName cn new ComponentName(com.example.jay.test, com.example.jay.test.MainActivity); i.setComponent(cn); i.setAction(android.intent.action.MAIN); startActivityForResult(i, RESULT_OK);
//
//21.打开录音机 Intent mi new Intent(Media.RECORD_SOUND_ACTION); startActivity(mi);
//
//22.从google搜索内容 Intent intent new Intent(); intent.setAction(Intent.ACTION_WEB_SEARCH); intent.putExtra(SearchManager.QUERY,searchString) startActivity(intent);
//