- 浏览: 161628 次
- 性别:
- 来自: 上海 苏州
最新评论
-
di1984HIT:
血的不错啊,
用HTTP GET调用web service(Java、Groovy两个版本) -
zxw13651485:
学习了!!!
使用基站、wifi实现定位 -
yanruxu801314:
不错,楼主确实有才,可我很奇怪的是,这个app现在还有更新么, ...
豆瓣同城的客户端---豆邻1.0 -
chen052210123:
每次都睡5秒,是不是不太好啊
在线升级Android应用程序完善版 -
zmwell:
楼主啊,我用你上面的程序进行定位,我在西安,却定位到了北京,这 ...
使用基站、wifi实现定位
转载请注明出处
在android开发中Activity相当于web开发的页面,或者说如j2ee开发中对应的jsp页面。在开发jsp时,经常会遇到页面跳转的问题,在android也同样会遇到。以下的几个例子是我对android的Activity跳转的小结,也是最近做项目的小结。
第一个例子:demo1
Main—>SecondActivity—>Main
从流程上看就是从Main跳转到SecondActivity,再从SecondActivity返回到Main。也就是将子Activity的数据返回给父Activity。
代码如下:
图一
图一所示是demo初始化的样子,点击“第一次跳转”进入图二。
图二
图二显示从Main到SecondActivity这个过程,再点击“第二次跳转”即返回Main这个Activity。
图三
图三表示跳转结束,Button按钮上面的文字记录跳转的过程。
这个例子最主要是第一个Activity Main设置的onActivityResult()方法和startActivityForResult()方法。
在Main中通过startActivityForResult()调用SecondActivity,然后在onActivityResult()中获取其返回参数,或者说通过onActivityResult()进行回调。
SecondActivity中要返回第一个Main必须:
setResult(Activity.RESULT_OK,i);
finish();
第二个例子:demo2
Main—>SecondActivity—>ThirdActivity—>Main
这个例子的流程,比上一个更复杂一些,经历了3个Activity,最好跳转回第一个Activity。
代码如下:
这个demo2比起前面的demo1的不同之处在于就是通过ThirdActivity进行跳转到Main。
在代码上的区别是:
(1)Main的onActivityResult()方法中,它的resultCode==Activity.RESULT_FIRST_USER而不是前面的resultCode==Activity.RESULT_OK
(2)SecondActivity中增加了onActivityResult()方法,该方法是用于回调ThirdActivity,并且该方法执行了跳转过程跳转到Main这个Activity。
(3) ThirdActivity和demo1的SecondActivity很类似。
第三个例子:demo3
Main—>SecondActivity—>ThirdActivity—>SecondActivity—>Main
这个过程看起来复杂,其实不然,最后一步是借助SecondActivity的另一个Button实现的。
代码如下:
比起前一个demo2其实没有更复杂之处,只是从ThirdActivity跳转回SecondActivity,而通过SecondActivity的另一个Button来跳转回Main的。
在android开发中Activity相当于web开发的页面,或者说如j2ee开发中对应的jsp页面。在开发jsp时,经常会遇到页面跳转的问题,在android也同样会遇到。以下的几个例子是我对android的Activity跳转的小结,也是最近做项目的小结。
第一个例子:demo1
Main—>SecondActivity—>Main
从流程上看就是从Main跳转到SecondActivity,再从SecondActivity返回到Main。也就是将子Activity的数据返回给父Activity。
代码如下:
public class Main extends Activity { private Button btn; private TextView request_text; private final int FIRST_REQUEST_CODE = 1; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); request_text = (TextView)this.findViewById(R.id.request_text); btn = (Button)this.findViewById(R.id.btn); btn.setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent i = new Intent(Main.this,SecondActivity.class); i.putExtra("request_text_for_main", "从Main传递到SecondActivity"); startActivityForResult(i, FIRST_REQUEST_CODE); } }); } protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode==FIRST_REQUEST_CODE && resultCode==Activity.RESULT_OK){ if(data != null) { request_text.setText(data.getStringExtra("request")); } } } }
public class SecondActivity extends Activity{ private TextView request_text; private Button btn; private String text; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.second); request_text = (TextView)this.findViewById(R.id.request_text); if (getIntent().getStringExtra("request_text_for_main") != null) { text = getIntent().getStringExtra("request_text_for_main"); request_text.setText(text); } btn = (Button)this.findViewById(R.id.btn); btn.setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent i = new Intent(); i.putExtra("request",text+"\n"+"从SecondActivity传递到ThirdActivity"); setResult(Activity.RESULT_OK,i); finish(); } }); } }
图一
图一所示是demo初始化的样子,点击“第一次跳转”进入图二。
图二
图二显示从Main到SecondActivity这个过程,再点击“第二次跳转”即返回Main这个Activity。
图三
图三表示跳转结束,Button按钮上面的文字记录跳转的过程。
这个例子最主要是第一个Activity Main设置的onActivityResult()方法和startActivityForResult()方法。
在Main中通过startActivityForResult()调用SecondActivity,然后在onActivityResult()中获取其返回参数,或者说通过onActivityResult()进行回调。
SecondActivity中要返回第一个Main必须:
setResult(Activity.RESULT_OK,i);
finish();
第二个例子:demo2
Main—>SecondActivity—>ThirdActivity—>Main
这个例子的流程,比上一个更复杂一些,经历了3个Activity,最好跳转回第一个Activity。
代码如下:
public class Main extends Activity { private Button btn; private TextView request_text; private final int FIRST_REQUEST_CODE = 1; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); request_text = (TextView)this.findViewById(R.id.request_text); btn = (Button)this.findViewById(R.id.btn); btn.setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent i = new Intent(Main.this,SecondActivity.class); i.putExtra("request_text_for_main", "从Main传递到SecondActivity"); startActivityForResult(i, FIRST_REQUEST_CODE); } }); } protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode==FIRST_REQUEST_CODE && resultCode==Activity.RESULT_FIRST_USER){ if(data != null) { request_text.setText(data.getStringExtra("request_text_for_third")); } } } }
public class SecondActivity extends Activity{ private TextView request_text; private Button btn; private final int SECOND_REQUEST_CODE = 2; private String text; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.second); request_text = (TextView)this.findViewById(R.id.request_text); if (getIntent().getStringExtra("request_text_for_main") != null) { text = getIntent().getStringExtra("request_text_for_main"); request_text.setText(text); } btn = (Button)this.findViewById(R.id.btn); btn.setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent i = new Intent(SecondActivity.this,ThirdActivity.class); i.putExtra("request_text_for_second", text+"\n"+"从SecondActivity传递到ThirdActivity"); startActivityForResult(i, SECOND_REQUEST_CODE); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode==SECOND_REQUEST_CODE && data != null){ setResult(Activity.RESULT_FIRST_USER, data); finish(); } } }
public class ThirdActivity extends Activity{ private TextView request_text; private Button btn; private String text; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.third); text = getIntent().getStringExtra("request_text_for_second"); request_text = (TextView)this.findViewById(R.id.request_text); request_text.setText(text); btn = (Button)this.findViewById(R.id.btn); btn.setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent i = new Intent(); i.putExtra("request_text_for_third", text+"\n"+"从ThirdActivity再次传递到Main"); setResult(Activity.RESULT_FIRST_USER, i); finish(); } }); } }
这个demo2比起前面的demo1的不同之处在于就是通过ThirdActivity进行跳转到Main。
在代码上的区别是:
(1)Main的onActivityResult()方法中,它的resultCode==Activity.RESULT_FIRST_USER而不是前面的resultCode==Activity.RESULT_OK
(2)SecondActivity中增加了onActivityResult()方法,该方法是用于回调ThirdActivity,并且该方法执行了跳转过程跳转到Main这个Activity。
(3) ThirdActivity和demo1的SecondActivity很类似。
第三个例子:demo3
Main—>SecondActivity—>ThirdActivity—>SecondActivity—>Main
这个过程看起来复杂,其实不然,最后一步是借助SecondActivity的另一个Button实现的。
代码如下:
public class Main extends Activity { private Button btn; private TextView request_text; private final int FIRST_REQUEST_CODE = 1; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); request_text = (TextView)this.findViewById(R.id.request_text); btn = (Button)this.findViewById(R.id.btn); btn.setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent i = new Intent(Main.this,SecondActivity.class); i.putExtra("request_text_for_main", "从Main传递到SecondActivity"); startActivityForResult(i, FIRST_REQUEST_CODE); } }); } protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode==FIRST_REQUEST_CODE && resultCode==Activity.RESULT_FIRST_USER){ if(data != null) { request_text.setText(data.getStringExtra("final_request")); } } } }
public class SecondActivity extends Activity{ private TextView request_text; private Button btn,finalBtn; private final int SECOND_REQUEST_CODE = 2; private String text; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.second); request_text = (TextView)this.findViewById(R.id.request_text); if (getIntent().getStringExtra("request_text_for_main") != null) { text = getIntent().getStringExtra("request_text_for_main"); request_text.setText(text); } btn = (Button)this.findViewById(R.id.btn); btn.setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent i = new Intent(SecondActivity.this,ThirdActivity.class); i.putExtra("request_text_for_second", text+"\n"+"从SecondActivity传递到ThirdActivity"); startActivityForResult(i, SECOND_REQUEST_CODE); } }); finalBtn = (Button)this.findViewById(R.id.finalBtn); finalBtn.setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent i = new Intent(); i.putExtra("final_request", text+"\n"+"从SecondActivity最后传递到Main"); setResult(Activity.RESULT_FIRST_USER,i); finish(); } }); } protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode==SECOND_REQUEST_CODE && resultCode==Activity.RESULT_OK){ if(data != null) { text = data.getStringExtra("request_text_for_third"); request_text.setText(text); } } } }
public class ThirdActivity extends Activity{ private TextView request_text; private Button btn; private String text; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.third); text = getIntent().getStringExtra("request_text_for_second"); request_text = (TextView)this.findViewById(R.id.request_text); request_text.setText(text); btn = (Button)this.findViewById(R.id.btn); btn.setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent i = new Intent(); i.putExtra("request_text_for_third", text+"\n"+"从ThirdActivity再次传递到SecondActivity"); setResult(Activity.RESULT_OK, i); finish(); } }); } }
比起前一个demo2其实没有更复杂之处,只是从ThirdActivity跳转回SecondActivity,而通过SecondActivity的另一个Button来跳转回Main的。
发表评论
-
豆瓣同城的客户端---豆邻1.0
2011-04-01 15:23 2106豆邻是豆瓣同城的android客户端。具有豆瓣同城的功 ... -
【原创】实现类似街旁网的分享足迹功能
2011-03-06 16:19 3168转载请注明出处 在sina微博上看到街旁网的客户端有 ... -
【原创】时客地图1.7
2011-03-03 00:23 1782时客地图是一款android上的app,目前的最新版本是1.7 ... -
【原创】时客地图1.6
2011-02-12 12:07 1235时客地图是一款android上的app,目前的最新版本是1.6 ... -
【原创】时客地图1.5
2011-01-28 13:18 1241时客地图是一款android上的app,目前的最新版本是1.5 ... -
使用基站、wifi实现定位
2010-11-26 17:28 17058转载请注明出处 android可以借助于gps ... -
关于自适应屏幕方向和大小的一些经验
2010-11-10 13:57 5035转载请注明出处 刚开始,我开发时选取的模拟 ... -
Android隐性Intent的例子
2010-11-02 17:38 7932转载请注明出处 Android的Intent分为两大 ... -
Android 线程超时的例子
2010-11-02 15:09 9334转载请注明出处 android的线程和java的线程是 ... -
在线升级Android应用程序完善版
2010-10-29 16:07 14467转载请注明出处 发一个完善版本的 思路还是原来的思路,上一篇 ... -
在线升级Android应用程序的思路
2010-10-24 23:53 4009转载请注明出处 如果某个app有内嵌的s ... -
通过地名获得经纬度并标识在地图上
2010-10-19 17:30 6067转载请注明出处 主要是调用Geocoder的getFromL ... -
分享一款android的日历组件
2010-10-17 15:28 3875转载请注明出处 这个日历组 ... -
时客1.4
2010-07-03 12:58 1218增加公交线路的详细信息: 1)公交线路的查询 2)公交站点途径 ... -
时客1.3
2010-06-15 22:36 1019在1.2版本中增加了地铁的查询功能,在1.3版本中新增了查询打 ... -
刚做的2款应用
2010-06-08 00:05 1187由于刚升级了android的固件到2.1,因此我也将我 ... -
比价器0.1版本
2010-06-01 23:23 1390做了一个比较当当 卓越 china-pub 图书的价格 ... -
时客1.0beta发布
2010-02-28 15:06 1019时客,可以查询火车班次、飞机航班 我在G2上 ... -
做了一个可以查询飞机航班、火车班次的小应用
2010-02-14 15:01 3537做得很粗糙,代码量也很少,数据通过调用web service得 ...
相关推荐
在android开发中Activity相当于web开发的页面,或者说如j2ee开发中对应的jsp页面。在开发jsp时,经常会遇到页面跳转的问题,在android也同样会遇到。以下的几个例子是我对android的Activity跳转的小结。
在智能家居系统的应用中,每个不同的功能模块,如设置、监控、控制等,都可以由一个或多个Activity来实现。Activity可以通过Intent来启动或关闭,形成应用程序中的界面导航。 3. **利用Intent实现界面跳转**: 要...
一个应用程序通常包含多个Activity,它们通过特定的方式进行通信和交互。 #### Activity简介 每个Activity代表了一个单独的屏幕,在Android中,Activity是一个生命周期明确的对象,可以通过回调方法来跟踪它的状态...
它提供了多个方法,例如 onPageStarted、onPageFinished、shouldOverrideUrlLoading 等。通过重写这些方法,可以对 WebView 中的事件进行处理。 shouldOverrideUrlLoading 方法 shouldOverrideUrlLoading 方法是 ...
廖祜秋liaohuqiu_秋百万 的 Android 悬浮窗的小结 睡不着起不来的万先生 的 Android悬浮窗使用TYPE_TOAST的小结 睡不着起不来的万先生 的 Android无需权限显示悬浮窗, 兼谈逆向分析app 文中提到,type 为 ...
11.2.3 华丽转身——实现多页面跳转 11.2.4 始终为用户做好服务——增加Service 11.2.5 细节决定成败——完善应用细节 11.3 成功就在眼前——应用测试和发布 11.3.1只欠东风——应用测试 11.3.2 可以赚钱了——发布...
Android 响应 onClick 事件的五种实现方式小结 Android 响应 onClick 事件是 Android 开发中非常重要的一个环节,对于按钮、文本框、列表项等控件的点击事件处理都是通过 onClick 事件来实现的。下面将为您介绍 ...
9.3.1 多个Activity之间数据传递 189 9.3.2 跳转与返回 192 9.3.3 任务与标志 196 9.4 Android系统内置Intent 199 本章小结 201 第10章 数据存储 203 10.1 健康助手案例 203 10.2 Android数据存储概述 205 ...
2.4 本章小结 15 第三章 跨域交互缓存处理设计 17 3.1 跨域交互缓存处理需求 17 3.1.1 缓存技术WebStorage 17 3.1.2 跨域交互缓存处理需求 17 3.1.3 页面回退管理需求 17 3.2 缓存处理机制 18 3.2.1 跨域缓存处理 18...
1.6 本章小结 6 第2章 工欲善其事 必先利其器——搭建Android开发环境 7 2.1 开发Android应用前的准备 7 2.1.1 Android开发系统要求 7 2.1.2 Android软件开发包 7 .2.1.3 其他注意事项 8 2.2 ...
1.6 本章小结 第2章 工欲善其事 必先利其器——搭建Android开发环境 2.1 开发Android应用前的准备 2.1.1 Android开发系统要求 2.1.2 Android软件开发包 2.1.3 其他注意事项 2.2 Windows开发环境搭建 2.2.1 JDK、...
#### 四、小结 通过本次实验,我们不仅了解了如何设计和实现登录与注册页面,还学习了如何通过Intent实现Activity之间的跳转,以及如何使用SharedPreferences存储用户信息。这对于Android应用的开发来说是非常基础...
【标题】"课设校园新闻...综上所述,这个“课设校园新闻管理”项目涵盖了Android应用开发的多个重要方面,无论是对于个人学习还是团队合作,都是一个很好的实践平台,有助于提升开发者对Android系统的理解和编程技能。