zoukankan      html  css  js  c++  java
  • 2.Intent

      1.Intent分为显示调用和隐式调用

      a.显示调用:

      Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
      startActivity(intent);
     
      b.隐式调用:
      第一步,先编写清单文件
      <activity android:name=".SecondActivity" >
          <intent-filter>
              <action android:name="com.example.activityteset.ACTION_START" />
              <category android:name="android.intent.category.DEFAULT" />
          </intent-filter>
      </activity>
      第二步,编写代码
      Intent intent = new Intent("com.example.activityteset.ACTION_START");
      startActivity(intent);
     
      2.Intent除了可以进行页面的跳转外,还可以传值
      方式1,向第二个页面传值
      页面1代码:
      Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
      intent.putExtra("extra_data","此处是需要传递的值");-->此处是采用键值对的方式来进行的,extra_data是键,后面是值
      startActicity(intent);
      页面2代码:
      Intent intent = getIntent();-->获得Intent
      String data = intent.getStringExtra("extra_data");-->根据extra_data这个键,取出与之对应的值
      Log.d("SecondActivity",data);-->从log中输出
     
      方式2,向上一个页面传值
      页面1代码:
      Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
      startActivityForResult(intent,1);---第一个参数是意图,第二个参数可以是任意唯一数字
      /** 由于使用的是startActivityForResult调用的第二个活动,所以在第二个活动结束前会调用onActivityResult方法,所以要重写该方法*/
      switch(requestCode){
          case 1:---对应上面startActivityForResult(intent,1);l里的1
              if(resultCode == RESULT_OK){
                  String returndata = data.getStringExtra("extra_data");
                  Log.d("FirstActivity",returndata);
              }
              break;
          default:
      }
      页面2代码:
      Intent intent = new Intent();
      intent.putExtra("extra_data","此处是要返回的数据");
      setResult(RESULT_OK,intent);---第一个参数代表处理结果,一般写RESULT_OK和RESULT_CANCELED这两个值
      finish();

       3.活动的生命周期:

      onCreate(建立)-->onStart(开始)-->onResume(继续)-->onPause(暂停)-->onStop(停止)-->onDestory(销毁)

       4.若想设置一个对话框似的activity,则需要在清单文件里设置主题

      <activity android:name=".DialogActivity" android:theme="@android:style/Theme.Dialog"></activity>

       5.如果当前的activity被打断,并且希望保留打断之前的数据,那么需要重写onSaveInstanceState方法

      super.onSaveInstanceState(outState);---outState是Bundle类型的对象
      outState.putString("data_key","此处填写要保存的信息");
      在onCreate方法中恢复数据
      super.onCreate(saveInstanceState);
      if(saveInstanceState!=null){
          String data = saveInstanceState.getString("data_key");
          Log.d(FirstActivity,data);
      }

       6.活动的启动模式

      standard---调用一个Activity就会覆盖当前栈,即使被调用是当前的Activity,那么也会覆盖
      singleTop---如果被调用是当前的Activity,并且处于栈顶,那么就不会再重新覆盖
                         如果被调用的Activity不在栈顶,那么就会重新覆盖,但是此时的Activity和栈底部的Activity在本质来讲已经不是同一个Activity了
      singleTask---被调用的Activity在当前栈中是唯一的,如果调用底部的Activity,那么它上面的所有Activity全部执行出栈操作
      singleInstance---设立单独的一个栈来管理,比如:A和C是一个栈,B是单独的一个栈,正确顺序是A进入B再进入C,但是返回的时候是C->A->B->退出

       7.控制手机返回键的功能要重写onBackPressed方法

  • 相关阅读:
    Python3爬虫之爬取某一路径的所有html文件
    python获取数据网页数据并创建文件夹保存(基于python3.6)
    Python 爬取单个网页所需要加载的地址和CSS、JS文件地址
    java的关闭钩子(Shutdown Hook)
    如何形象的解释 webhook 这个词
    Webhook
    什么是webhook
    瞎折腾之Webhooks
    Java-马士兵设计模式学习笔记-观察者模式-读取properties文件,动态增加观察者
    怎么解决重装系统后“我的文档”拒绝访问(更改权限就可以了)
  • 原文地址:https://www.cnblogs.com/FruitBoy/p/4743717.html
Copyright © 2011-2022 走看看