当前位置: 编程技术>移动开发
本页文章导读:
▪const void *a 与 void *const a 的差别 const void *a 与 void *const a 的区别
const void *a这是定义了一个指针a,a可以指向任意类型的值,但它指向的值必须是常量。在这种情况下,我们不能修改被指向的对象,但可以使指针指向其他对.........
▪ 若有安裝APP, 自動開啟(使用 URL Schema), 若無, 則詢問是不是到商店進行下載 若有安裝APP, 自動開啟(使用 URL Schema), 若無, 則詢問是否到商店進行下載。
......
▪ Intent的起动 Intent的启动
<div ></div>显示意图启动
public void explicit(View view){
// 1).先创建意图对象然后制定开启的activity
Intent intent = new Intent();
// 1.使用当前环境
intent.setClass(this, otherActivity.........
[1]const void *a 与 void *const a 的差别
来源: 互联网 发布时间: 2014-02-18
const void *a 与 void *const a 的区别
const void *a
这是定义了一个指针a,a可以指向任意类型的值,但它指向的值必须是常量。
在这种情况下,我们不能修改被指向的对象,但可以使指针指向其他对象。
例如:
const void *a;*a=0x123;//是编译通不过的,因为*a中放的是个const值。const值是不能被改变的。
const int m=1; const int n=2;
a=&m; a=&n;//编译可以通过。
void* const a
这是定义了一个const指针a,a可以指向任意类型的值,但a是指向某个对象的常量指针。
我们不能修改指针中存储的地址,但可以修改指针指向的对象。
例如:
void* const a;这个定义:*a=0x123;是没问题的,
但是a=(void*)&b;是不行的,因为a是const变量。
如:
int m=1; nt n=2;
a=&m; a=&n;//编译不成功。
可以这么说,const void *a;中const修饰的是*a。在void* const a中,const 修饰的是a。
原文:http://blog.csdn.net/yinjiabin/article/details/6731352
const void *a
这是定义了一个指针a,a可以指向任意类型的值,但它指向的值必须是常量。
在这种情况下,我们不能修改被指向的对象,但可以使指针指向其他对象。
例如:
const void *a;*a=0x123;//是编译通不过的,因为*a中放的是个const值。const值是不能被改变的。
const int m=1; const int n=2;
a=&m; a=&n;//编译可以通过。
void* const a
这是定义了一个const指针a,a可以指向任意类型的值,但a是指向某个对象的常量指针。
我们不能修改指针中存储的地址,但可以修改指针指向的对象。
例如:
void* const a;这个定义:*a=0x123;是没问题的,
但是a=(void*)&b;是不行的,因为a是const变量。
如:
int m=1; nt n=2;
a=&m; a=&n;//编译不成功。
可以这么说,const void *a;中const修饰的是*a。在void* const a中,const 修饰的是a。
原文:http://blog.csdn.net/yinjiabin/article/details/6731352
[2] 若有安裝APP, 自動開啟(使用 URL Schema), 若無, 則詢問是不是到商店進行下載
来源: 互联网 发布时间: 2014-02-18
若有安裝APP, 自動開啟(使用 URL Schema), 若無, 則詢問是否到商店進行下載。
原理:用瀏覽器開啟下載html, 利用javascript判斷。
<html>
<head>
<title>判斷是否有安裝APP,若無,則詢問是否下載</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="/blog_article/images/css.css" rel="stylesheet" type="text/css">
<script language="JavaScript" type="text/JavaScript">
var isiPad = navigator.userAgent.match(/iPad/i) != null;
var isiPhone = navigator.userAgent.match(/iPhone/i) != null;
var isandroid = navigator.userAgent.match(/Android/i) != null;
if(isandroid)
{
window.location.href='https://play.google.com/store/apps/details?id=com.fonestock.android.yourapp';
}
if(isiPad)
{
document.location = 'yourappurls://';
setTimeout( function() {
if( confirm( '您似乎沒有安裝, 這個APP, 進行下載?')) {
document.location = 'http://itunes.apple.com/tw/app/id4179293XX';
}
}, 300);
}
if(isiPhone)
{
document.location = 'yourappurls://';
setTimeout( function() {
if( confirm( '您似乎沒有安裝, 這個APP, 進行下載?')) {
document.location = 'http://itunes.apple.com/tw/app/id4179293XX';
}
}, 300);
}
</script>
</head>
<body>
</body>
</html>
[3] Intent的起动
来源: 互联网 发布时间: 2014-02-18
Intent的启动
<div ></div>
显示意图启动
隐式意图, 通过动作, 数据等设置打开Activity, 程序中并不指定一个类
在开启一个新的activity的时候,我们可以往里面传数据
/**
* @param requestCode startActivityForResult方法中传入的int值, 用来区别哪里开启的
* @param resultCode setResult方法中传入的int值, 用来区别哪里返回的
* @param data setResult方法中返回的Intent对象
*/
otherActivity中代码
最后记得在配置清单中加入activity
<div ></div>
显示意图启动
public void explicit(View view){ // 1).先创建意图对象然后制定开启的activity Intent intent = new Intent(); // 1.使用当前环境 intent.setClass(this, otherActivity.class); // 2.指定包名和类名 intent.setClassName("com.zls.intentabout", "com.zls.intentabout.otherActivity"); // 3.包名用this代替 intent.setClassName(this, "com.zls.intentabout.otherActivity"); // 2)创建意图的时候直接指定 Intent intent = new Intent(this, otherActivity.class); startActivity(intent); }
隐式意图, 通过动作, 数据等设置打开Activity, 程序中并不指定一个类
public void implicit(View view){ /* 打电话 Intent intent = new Intent(); intent.setAction(Intent.ACTION_CALL); intent.setData(Uri.parse("tel:18600012345")); startActivity(intent); */ /* 打开网页 Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setData(Uri.parse("http://www.baidu.com")); startActivity(intent); */ /*打开图片 Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setDataAndType(Uri.parse("file://mnt/sdcard/img.jpg"), "image/*"); startActivity(intent); */ /*打开音乐 Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setDataAndType(Uri.parse("file://mnt/sdcard/mu.mp3"), "audio/*"); startActivity(intent); */ /*打开视频 Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setDataAndType(Uri.parse("file://mnt/sdcard/di.mp4"), "video/*"); startActivity(intent); */ }
在开启一个新的activity的时候,我们可以往里面传数据
public void sendData(View view) { Intent intent = new Intent(this,otherActivity.class); //1.形式一 intent.putExtra("name", "张三"); intent.putExtra("age", 20); //2.形式二 Bundle b1 = new Bundle(); b1.putInt("age", 20); b1.putString("name", "张三"); intent.putExtra("b1", b1); startActivity(intent); // 开启Activity,不接受返回的数据 // startActivityForResult(intent, 100); // 开启Activity, 并接收返回的数据(在新Activity关闭的时候执行onActivityResult方法)100是请求码 }
/**
* @param requestCode startActivityForResult方法中传入的int值, 用来区别哪里开启的
* @param resultCode setResult方法中传入的int值, 用来区别哪里返回的
* @param data setResult方法中返回的Intent对象
*/
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { String name = data.getStringExtra("name"); int age = data.getIntExtra("age", -1); super.onActivityResult(requestCode, resultCode, data); }
otherActivity中代码
public class otherActivity extends Activity { //第一种 Intent intent = getIntent(); // String name = intent.getStringExtra("name"); // Integer age = intent.getIntExtra("age", -1); //第二种 Bundle b1 = intent.getBundleExtra("b1"); String name = b1.getString("name"); Integer age = b1.getInt("age"); }
最后记得在配置清单中加入activity
<activity android:name=".otherActivity" android:label="新的Activity" > <intent-filter > <action android:name="android.intent.action.CALL" /> <action android:name="android.intent.action.VIEW" /> <data android:scheme="tel" /> <data android:scheme="http" /> <data android:scheme="file" android:mimeType="image/*" /> <data android:scheme="file" android:mimeType="audio/*" /> <data android:scheme="file" android:mimeType="video/*" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity>
最新技术文章: