当前位置:  编程技术>移动开发
本页文章导读:
    ▪Activity其间传递类对象(二)        Activity之间传递类对象(二) 上一篇Activity之间传递类对象是实现Serializable接口传递对象,这篇是实现Parcelable接口传递对象。   传递的类 public class CustomeParcelable implements Parcelable { private S.........
    ▪ 打开多个Activity,回到到第一个Activity        打开多个Activity,返回到第一个Activity 打开多个Activity,如何返回到第一个Activity?   如 A 打开 B, B 打开 C, C 打开 D, 然后如果从 D 一步返回到 A,并清楚掉 B、C、D呢?   Android管理Activity.........
    ▪ 怎么让浏览器调用你的程序来打开资源       如何让浏览器调用你的程序来打开资源。 当用浏览器浏览网页的时候,当我们点击一个连接的时候,浏览器就会转到新的页面去。整个过程如下:1)用户在当前页面点击->2)浏览器获.........

[1]Activity其间传递类对象(二)
    来源: 互联网  发布时间: 2014-02-18
Activity之间传递类对象(二)

上一篇Activity之间传递类对象是实现Serializable接口传递对象,这篇是实现Parcelable接口传递对象。

 

传递的类

public class CustomeParcelable implements Parcelable {
	
	private String name;
	private String id;
	private int age;
	private String sex;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}
	
	public static final Parcelable.Creator<CustomeParcelable> CREATOR = new Creator<CustomeParcelable>(){

		public CustomeParcelable createFromParcel(Parcel source) {
			// TODO Auto-generated method stub
			CustomeParcelable cus = new CustomeParcelable();
			cus.name = source.readString();
			cus.id = source.readString();
			cus.age = source.readInt();
			cus.sex = source.readString();
			return cus;
		}

		public CustomeParcelable[] newArray(int size) {
			// TODO Auto-generated method stub
			return new CustomeParcelable[size];
		}
		
	};

	public int describeContents() {
		// TODO Auto-generated method stub
		return 0;
	}

	public void writeToParcel(Parcel dest, int flags) {
		// TODO Auto-generated method stub
		dest.writeString(name);
		dest.writeString(id);
		dest.writeInt(age);
		dest.writeString(sex);
	}

}

 

发送部分

CustomeParcelable cc = new CustomeParcelable();
cc.setAge(21);
cc.setId("123456");
cc.setName("mingkg21");
cc.setSex("男");
        
Intent intent = new Intent(this, PersonInfo.class);
intent.putExtra("PERSON_INFO", cc);
startActivity(intent);

 

接收部分

Intent intent = getIntent();
CustomeParcelable cc = intent.getParcelableExtra("PERSON_INFO");
setTextView(R.id.id, cc.getId());
setTextView(R.id.name, cc.getName());
setTextView(R.id.sex, cc.getSex());
setTextView(R.id.age, String.valueOf(cc.getAge()));
 

    
[2] 打开多个Activity,回到到第一个Activity
    来源: 互联网  发布时间: 2014-02-18
打开多个Activity,返回到第一个Activity

打开多个Activity,如何返回到第一个Activity?

 

如 A 打开 B, B 打开 C, C 打开 D, 然后如果从 D 一步返回到 A,并清楚掉 B、C、D呢?

 

Android管理Activity是用Activity栈管理的,当打开新的Activtiy,就往Activity栈里压入新的Activity,关掉Activity时就从Activity栈里弹出来。

 

本来想从Activity栈入手,可惜小弟比较笨,搞不出来,就用了很笨的方法。

 

每打开新的Activity都是用startActivityForResult,然后finish前都加setResult(RESULT_OK),这样也可以实现,但感觉非常笨。

 

还好有高手帮忙解决了这个问题。

 

废话少说,看代码。

 

Intent intent = new Intent( this, XXActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
 
1 楼 wayfarer 2009-11-05  
引用
每打开新的Activity都是用startActivityForResult,然后finish前都加setResult(RESULT_OK),这样也可以实现,但感觉非常笨。


哈哈,这个方法很有创意啊。运用了高深的迭代原理。
2 楼 liyh 2009-12-16  
我也想知道你的头像是谁?
3 楼 mingkg21 2009-12-16  
liyh 写道
我也想知道你的头像是谁?



我也想知道她是谁。。哈哈。。

    
[3] 怎么让浏览器调用你的程序来打开资源
    来源: 互联网  发布时间: 2014-02-18
如何让浏览器调用你的程序来打开资源。
当用浏览器浏览网页的时候,当我们点击一个连接的时候,浏览器就会转到新的页面去。整个过程如下:
1)用户在当前页面点击->2)浏览器获取新的URL->3)浏览器转到新的URL。现在,假设我们有一个pdf的阅读程式,他希望给用户提供下面的流程,希望改变上面流程中的3),变成:
3)浏览器告知pdf阅读器URL->4)pdf阅读器打开URL.
完整的流程就变成了:
1)用户在当前页面点击->2)浏览器获取新的URL->3)浏览器告知pdf阅读器URL->4)pdf阅读器打开URL.

应用Android sdk中的intent-fiter,我们能够实现上面的流程。
代码一:
 <activity android:name=".Downloader" android:theme="@android:style/Theme.Dialog" android:configChanges="orientation|keyboardHidden">
			<intent-filter>
				<action android:name="android.intent.action.VIEW" />
				<category android:name="android.intent.category.DEFAULT" />
				<category android:name="android.intent.category.BROWSABLE" />
				<data android:scheme="http" />
				<data android:host="*" />
				<data android:pathPattern=".*\\.pdf" />
			</intent-filter>
		</activity>
    </application>



代码二:
public class Downloader extends Activity {

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		final Intent intent = getIntent();
		final Uri uri = intent.getData();
        //uri 就是传来的uri。这里可以加入对传入的uri的处理。
        }
} 


代码一创建了一个Activity,intent-filter设置说明,如果浏览器浏览到结尾是pdf的文件,就调用Downloader Activity。在代码二中,我们通过intent.getData获取浏览器要访问的uri.接下来,系统可以对uri进行处理了。

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
IT科技资讯 iis7站长之家
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3