当前位置: 编程技术>移动开发
本页文章导读:
▪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,intent-filter设置说明,如果浏览器浏览到结尾是pdf的文件,就调用Downloader Activity。在代码二中,我们通过intent.getData获取浏览器要访问的uri.接下来,系统可以对uri进行处理了。
当用浏览器浏览网页的时候,当我们点击一个连接的时候,浏览器就会转到新的页面去。整个过程如下:
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进行处理了。
最新技术文章: