新手热门安卓Day2

本文详细介绍了Android开发中的Activity组件,包括创建、布局加载、注册、标题栏隐藏、按钮功能实现及Activity间的跳转与数据传递等内容。
  ====================== 2015.11.3  上午 ================
Activity(活动)
Day2_NextActivity.java Day2_FourActivity.java Day2_LastActivity.java Day02Activity.java
活动窗口可以包含多个用户界面的组件,主要用于用户交互。

一、活动的基本用法:
    在创建活动时不再勾选CreateActivity
    *关闭之前的项目
    1.手动创建活动
        1)新建包:com.zpark.activity
        2)在包中创建一个类:MainActivity.java
           这个类需要继承 android.app.Activity
        3)覆盖onCreate方法
        4)调用父类的onCreate方法进行初始化

    2.创建和加载布局文件
        每一个活动一般都会使用一个布局文件来作为活动的框架,在布局文件中可以定义一些控件。
        1)创建布局文件:在res目录中--->layout -->new--Android XML File --->输入文件名
        2)在布局文件中定义一个Button控件:
        <Button 
            android:id="@+id/button_1"  --给控件定义唯一标识符 @+id/定义id
            android:layout_width="match_parent" --指定控件的宽度 match_parent 与父元素宽度一致
            android:layout_height="wrap_content"--指定控件的高度 warp_content 包裹内容即可
            android:text="这是一个按钮" --指定控件中显示的文字
        />
        3)在MainActivity.java的onCreate方法中加载布局
            调用setContentView()方法将布局id作为参数
            setContentView(R.layout.布局文件名)
            *R 是我们 本项目中的R ,Android SDK会为我们默认提供一个 Android.R
            *不要用错

    3.在清单文件 AndroidManifest.xml中进行注册
         <activity android:name="com.zpark.activity.MainActivity" --指定给哪个Activity注册
                 android:label="Day2">  --指定应用名称
            <intent-filter >  --将该活动指定为应用的入口活动(主活动)
                <action  android:name="android.intent.action.MAIN"/>               
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>

    4.隐藏活动的标题栏
        由于手机屏幕有限,所以我们一般会把标题栏隐藏。
        在MainActivity的onCreate方法中添加:
        //隐藏标题栏
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        *一定要在setContentView()方法之前调用,否则会报错

    5.给按钮添加功能
     1)在代码中获得按钮元素:
        //获得按钮元素的对象
        Button button = (Button)findViewById(R.id.button_1);
     2)给按钮添加功能:
        I 创建按钮单击监听器:
            class MyListener implements OnClickListener{
                @Override
                public void onClick(View arg0) {
                        //当按钮点击时触发
                        Log.e("MyListener", "你点击了按钮!");
                }
            }  
        II注册按钮单击监听器:
            button.setOnClickListener(监听器对象);    

     3)*使用匿名内部类给按钮添加功能
        button.setOnClickListener(new OnClickListener(){
            @Override
            public void onClick(View arg0) {
                Log.e("MainActivity", "你又点击了按钮!");
            }
        });

    6.销毁活动:
     最简单的销毁活动方式是按下Back键
     从代码中也可以进行活动的销毁
     调用finish()

============================  ====================== 2015.11.3  下午 =========================================================================
活动的跳转
一、使用Intent启动另一个活动
    1.显式Intent
        1)创建布局文件 next_layout.xml
        2)创建NextActivity类
        3)获取一个按钮对象
        4)在按钮单击监听器中创建一个意图对象
              //1.创建意图对象    意图对象运行时所需的容器   跳转到哪一个Activity
            Intent intent = new Intent(MainActivity.this , NextActivity.class);
        5)调用startActivity(intent) 
           调用startActivity()把意图对象作为参数传入进去。
        *因为以这种方式创建Intent对象时,已经表明了将来要跳转到哪一个Activity,意图非常明确
        所以我们把它称之为显式Activity。

    2.隐式Intent
      每个活动可以配置一个意图过滤器
      在意图过滤器中可以配置 action 和 category 信息。
      当一个意图的 action 信息和category信息都能够匹配时,才会响应该Activity

      1)配置Activity的 intent-filter
        <intent-filter>
              <action android:name="com.zpark.activity.ACTION"></action>
              <category android:name="com.zpark.activity.CATEGORY"/>              
              <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>

      2)在代码中创建Intent
        Intent intent = new Intent("com.zpark.activity.ACTION");
        intent.addCategory("com.zpark.activity.CATEGORY");
        startActivity( intent );

      使用隐式Intent也可以启动其他应用中的Activity

      3)setData() 向Intent中添加一组数据
         activity标签可以再指定一个data标签
         更加精准地指定当前活动可以响应什么类型的数据
         data标签可配:
          android:scheme 用于指定数据的协议部分:例如:http 
          android:host 用于指定数据的主机名部分:例如: www.google.com
          android:port 用于指定数据的端口部分: 例如::2013
          android:mimeType 用于指定可以处理的数据类型,允许通过通配符的方式指定





    练习:
     给崔震投票功能
     隐式Intent的更多用法
    1.Intent.ACTION_CALL_BUTTON
    查看通话记录
     1)在main_layout.xml中添加一个按钮
     2)在MainActivity中获得按钮对象并且给按钮注册监听器
     3)在监听器中创建一个隐式意图:
        Intent intent = new Intent(Intent.ACTION_CALL_BUTTON);
        startActivity(intent);


    2.Intent.ACTION_VIEW
      播放视频功能
      1)在main_layout.xml中添加一个按钮
      2)在MainActivity中获得按钮对象并且给按钮注册监听器
      3)在监听器中创建一个隐式意图:
       Intent intent = new Intent(Intent.ACTION_VIEW);
       Uri uri = Uri.parse("视频路径");
       intent.setDataAndType(uri , "video/*");
       startActivity( intent );

    3.Intent.ACTION_CALL
       拨打电话
      1)在main_layout.xml中添加一个按钮
      2)在MainActivity中获得按钮对象并且给按钮注册监听器
      3)在监听器中创建一个隐式意图:
       Intent intent = new Intent(Intent.ACTION_CALL);
       intent.setData(Uri.parse("tel:13911312104"));
       startActivity( intent );

    4.Intent.ACTION_SENDTO
      发送一个短信
      1)在main_layout.xml中添加一个按钮
      2)在MainActivity中获得按钮对象并且给按钮注册监听器
      3)在监听器中创建一个隐式意图:
       Intent intent = new Intent(Intent.ACTION_SENDTO,Uri.parse("smsto:18091185673"));
       intent.putExtra("sms_body", "[国家地震局]警告:2015年11月4日 在郑大软件学院 水环楼3层 318教室 可能会发生局部地震,地震等级 12.5级,为了防止您被震飞,请速来109教室避难!");
       startActivity(intent);

Activity之间的值传递
    1.使用Intent向下一个活动传值
        Intent不光可以启动一个活动,还可以在活动启动时进行值传递。
        1)在第一个活动中使用
            Intent intent = new Intent();
            intent.putExtra("key","value");

        2)在另一个活动中使用
            Intent intent = getIntent();
            String value = intent.getString("key");

    2.返回数据给上一个活动
      点击Back键活动就返回了,这就意味着活动被销毁了,希望在活动被销毁前返回一个数据。
      Activity 中提供了一个方法
      startActivityForResult();
      这个方法用于启动某个活动,参数为Intent
      使用这个方法启动活动时,希望下一个活动会为我提供一个返回值。

      setResult();--方法可以返回一组数据给上一个活动
        返回时机,是在该活动销毁时

      Activity提供了一个回调函数
      onActivityResult()
      当上一个活动使用setResult()方法返回时,会调用这个函数。

    1)使用startActivityForResult(Intent intent , int requestCode)启动活动
            **intent 是保存数据的意图对象 
            **requestCode 代表请求码,唯一即可

    2)使用setReulst(int resultCode , Intent intent)将数据返回
           **intent 是保存数据的意图对象
           **resultCode 一般只用 RESULT_OK    :代表成功
                                 RESULT_CANCELED :代表失败

    3)使用onActivityResult()接收上一个活动的返回值

    4)当用户点击Back键时原来onClick方法中的setResult()就不会执行了
      Activity 中提供了一个方法 onBackPressed()
      当用户点击Back键时,该方法会执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值