`
_小菜鸟
  • 浏览: 34064 次
社区版块
存档分类
最新评论

我的android 第28天 - Activity(一)

 
阅读更多

 我的android 第28天 - Activity(活动)

 

一、添加新的活动

第一步:新建一个继承Activity的类,如:NewActivity

public class NewActivity extends Activity {

   @Override protected void onCreate(Bundle savedInstanceState) {

                   super.onCreate(savedInstanceState);

    //这里可以使用setContentView(R.layout.xxx)显示某个视图....

    }

}

第二步:需要在功能清单AndroidManifest.xml文件中添加进上面Activity配置代码(红色部分):

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

      package="cn.itcast.action"

      android:versionCode="1"

      android:versionName="1.0">

   <application android:icon="@drawable/icon" android:label="@string/app_name">

  <activity android:name=".NewActivityandroid:label="activity的页面标题"/>

   </application>

</manifest>

android:name属性值的前面加了一个点表示NewActivity是当前包cn.itcast.action下的类,如果类在应用的当前包下,可以省略点符号,如果类在应用的子包下必须加点,如:NewActivity类在cn.itcast.action.user包下可以这样写:<activityandroid:name=“.user.NewActivity“/>

二、激活Activity

在一个Activity中可以使用系统提供的startActivity(Intent intent)方法打开新的Activity,在打开新的Activity前,你可以决定是否为新的Activity传递参数:

第一种:打开新的Activity,不传递参数

public class MainActivity extends Activity {

 @Overrideprotected void onCreate(Bundle savedInstanceState) {

  .......

  Buttonbutton =(Button) this.findViewById(R.id.button);

                           button.setOnClickListener(new View.OnClickListener(){//点击该按钮会打开一个新的Activity

  publicvoid onClick(View v) {

                          //新建一个显式意图,第一个参数为当前Activity类对象第二个参数为你要打开的Activity

      startActivity(new Intent(MainActivity.thisNewActivity.class));

  }});

         }

}

 

第二种:打开新的Activity,并传递若干个参数给它:

public class MainActivity extends Activity {

 @Overrideprotected void onCreate(Bundle savedInstanceState) {

  .......

   button.setOnClickListener(new View.OnClickListener(){//点击该按钮会打开一个新的Activity

            public void onClick(View v) {

             Intent intent = new Intent(MainActivity.thisNewActivity.class)

Bundle bundle = new Bundle();//该类用作携带数据

bundle.putString("name", "传智播客");

bundle.putInt("age", 4);

intent.putExtras(bundle);//附带上额外的数据

startActivity(intent);

  }});}

}

在新的Activity中接收前面Activity传递过来的参数:

publicclass NewActivity extends Activity {

            @Override protectedvoid onCreate(Bundle savedInstanceState) {

      ........ 

      Bundlebundle = this.getIntent().getExtras();

       String name = bundle.getString("name");

                      int age = bundle.getInt("age");

            }

}

 

 

  三、 得到新打开Activity 关闭后返回的数据

如果你想在Activity中得到新打开Activity 关闭后返回的数据,你需要使用系统提供的startActivityForResult(Intent intent, int requestCode)方法打开新的Activity,新的Activity 关闭后会向前面的Activity 传回数据,为了得到传回的数据,你必须在前面的Activity中重写onActivityResult(int requestCode, int resultCode, Intent data)方法:

public class MainActivity extends Activity {

      @Override protected void onCreate(Bundle savedInstanceState) {

  Buttonbutton =(Button) this.findViewById(R.id.button);

                           button.setOnClickListener(new View.OnClickListener(){//点击该按钮会打开一个新的Activity

  publicvoid onClick(View v) {

  //第二个参数为请求码,可以根据业务需求自己编号

  startActivityForResult (new Intent(MainActivity.thisNewActivity.class),  1);

  }});}

   //第一个参数为请求码,即调用startActivityForResult()传递过去的值

   //第二个参数为结果码,结果码用于标识返回数据来自哪个新Activity

   @Override protectedvoid onActivityResult(int requestCode, int resultCode, Intent data) {

  String result = data.getExtras().getString(“result”));//得到新Activity关闭后返回的数据

   }}

  当新Activity关闭后,新Activity返回的数据通过Intent进行传递,android平台会调用前面Activity 的onActivityResult()方法,把存放了返回数据的Intent作为第三个输入参数传入,在onActivityResult()方法中使用第三个输入参数可以取出新Activity返回的数据。

使用startActivityForResult(Intent intent, int requestCode)方法打开新的Activity,新Activity关闭前需要向前面的Activity返回数据需要使用系统提供的setResult(int resultCode,Intent data)方法实现:

publicclass NewActivity extends Activity {

  @Overrideprotectedvoid onCreate(Bundle savedInstanceState) {

  ......

          button.setOnClickListener(new View.OnClickListener(){

  publicvoid onClick(View v) {

    Intent intent =new Intent();//数据是使用Intent返回

  intent.putExtra(“result”,“传智播客的学生很可爱”);//把返回数据存入Intent

   NewActivity.this.setResult(RESULT_OK, intent);//设置返回数据

   NewActivity.this.finish();//关闭Activity

  }});

  }

}

setResult()方法的第一个参数值可以根据业务需要自己定义,上面代码中使用到的RESULT_OK是系统Activity类定义的一个常量,值为-1,代码片断如下:

publicclass android.app.Activity extends ......{

 public static final int RESULT_CANCELED = 0;

  public static final intRESULT_OK = -1;

 public static final int RESULT_FIRST_USER = 1;

}

 

下载视频代码

分享到:
评论

相关推荐

    android应用开发详解 郭宏志编著 pdf格式

    第一篇 基础篇 第一章 android概述 第二章 android开发基础 第二篇 技术篇 第三章 android中的资源访问 第四章 android用户界面 第五章 android基本程序单元Activity ...第十八章 android应用案例--无线点餐系统

    Android高级编程--源代码

    由于现有的手机应用程序的开发是构建在各手机厂家的私有操作系统之上的,所以它限制了第三方应用程序的开发,而Android为我们提供了一个开放和通用的选择。因为没有了人为制造的障碍,所以Android开发人员可以自由地...

    老罗android开发视频教程全集百度网盘下载

    【第一版第二章】老罗Android开发视频--常用UI布局介绍(5集) 【第一版第三章】老罗Android开发视频--HTTP协议编程(4集) 【第一版第四章】老罗Android开发视频--解析XML数据(3集) 【第一版第五章】老罗...

    深入理解Android:卷I--详细书签版

    5.2.2 第二板斧——由弱生强 103 5.2.3 第三板斧——破解生死魔咒 106 5.2.4 轻量级的引用计数控制类LightRefBase 108 5.2.5 题外话——三板斧的来历 109 5.3 Thread类及常用同步类分析 109 5.3.1 一个变量...

    android一步一步最基础学习__新手

    第一讲:Android开发环境的搭建 第二讲:Android系统构架分析和应用程序目录结构分析 ...第二十八讲:Android多媒体(Media)入门 第二十九讲:WebView学习指南 第三十讲:URLConnection和HttpClient使用入门

    ARM Cortex-A8和Android 4.x联动报警系统

    第二部分内容,先简单讲解Android系统移植相关原理,然后一步步手把手教大家如何进行Linux内核移植、Android源码编译、以及Android到Cortex A8开发板的移植;第三部分内容,先教大家如何搭建裸机开发环境,然后带领...

    android开发资料大全

    从零开始Android游戏编程(第二版) 新版Android开发教程&笔记(1-12) eoeAndroid社区精华特刊共24期全部原创 《深入浅出Android--Google手持设备应用程序设计》下载 《Android编程指南》android-book.pdf 下载 ...

    8天快速掌握Android教程源码

    04_开发与运行(卸载)第一个ANDROID应用.avi 所在项目:Hello 06_电话拔号器.avi 所在项目:phone 08_短信发送器.avi 所在项目:sms 09_深入了解各种布局技术.avi 所在项目:sms & FrameLayout 10_对应用进行单元...

    Android开发案例驱动教程 配套代码

    第3章 第一个Android程序 15 3.1 HelloAndroid 15 3.1.1 在Eclipse中创建项目 15 3.1.2 编写程序项目代码 17 3.1.3 运行HelloAndroid 18 3.1.4 Android工程目录 19 3.1.5 AndroidManifest.xml文件 21 3.2 ...

    《Android开发权威指南》 PDF (安卓sdk 2.3)

    第二部分 基础篇,包括第3章~第16章,第3章 Android程序设计基础、第4章 用户界面开发基础、第5章 控件(Widget)详解、第6章 菜单、第7章 信息提醒(对话框、Toast与Notification)、第8章 数据存储、第9章 Android...

    疯狂Android讲义源码

     1.4 开始第一个Android应用 20  1.4.1 使用Eclipse开发第一个  Android应用 20  1.4.2 通过ADT运行Android应用 23  1.5 Android应用结构分析 24  1.5.1 创建一个Android应用 24  1.5.2 自动生成的R.java 26 ...

    Google!Android手機應用程式設計入門

    第二十八章 簽發應用程式金鑰(keytools) 第二十九章 發佈到 Android 市集(Market) 第三十章 加入列表活動(ListActivity) 第三十一章 使用資料庫(SQLite) 第三十二章 存取資料表 (SQLiteOpenHelper) 第三十三...

    Android开发权威指南

    第二部分 基础篇,包括第3章~第16章,第3章 Android程序设计基础、第4章 用户界面开发基础、第5章 控件(Widget)详解、第6章 菜单、第7章 信息提醒(对话框、Toast与Notification)、第8章 数据存储、第9章 Android...

    一本android的好书beginning android 2 和 源码

    这是一本学习android的好书,我浏览了,是老外著的,高清晰的pdf。为了方便大家学习android,我将本书所附的源码一块打包了。方便了不少,如果觉得好就顶一下吧,大家共同进步。 另外一本pro android 的下载地址: ...

    疯狂android讲义源代码.7z.001(共三卷)

    第二章android应用的界面编程 第三章事件处理 第四章深入理解activity 第五章使用intent和intentFilter进行通信 第六章android应用的资源 第七章图形与图像处理 第八章android的数据存储和IO 第九章使用...

    疯狂android讲义源代码.7z.003(共三卷)

    第二章android应用的界面编程 第三章事件处理 第四章深入理解activity 第五章使用intent和intentFilter进行通信 第六章android应用的资源 第七章图形与图像处理 第八章android的数据存储和IO 第九章使用...

    疯狂android讲义源代码.7z.002(共三卷)

    第二章android应用的界面编程 第三章事件处理 第四章深入理解activity 第五章使用intent和intentFilter进行通信 第六章android应用的资源 第七章图形与图像处理 第八章android的数据存储和IO 第九章使用...

Global site tag (gtag.js) - Google Analytics