android 的基础知识复习

activity: launchMode

1、singleTop :栈顶是当前的activity时,才不会创建新的activity:注意(栈顶)
2、singleTask:启动activity时,先检查栈中是否有当前的activity,有则弹出当前activity的之上的所有activity,无则创建。
3、singleInstance:是一个单例模式,保证activity的单独性。他和singleTask的区别是:前者是创一个activity放在一个单独的任务栈中,在启动一个不同activity时还会在创一个任务栈将activity放进去,每次启动activity的时候都会跳到相应栈,找不到放入新栈。singleTask是每次启动都会在任务中查找要启动的activity是否存在,有—>则将前面的activity弹出,无—>则创建

Intent的使用

  • 使用显式的Intent
    Intent in = new Intent(context,destinaion.class)
    
  • 使用隐式的Intent
    <activity  android:name=".SecondActivity>
          <intent-filter>
          	/*如果有多个activity的action名字重复,Intent请求时则会出现一个选择的activity的界面
          	只说Intent单独查找action,其他都一样*/
              <action name="android.intent.action.NAME" /> //intent  对象中引用的值
           <category name="android.intent.category.DEFAULT"> // intent.addCategory引用
         <intent-filter>
    <activity>
    //在activity类中使用
    Intent in = new Intent("android.intent.action.NAME")
  • Intent的其他使用
<activity  android:name=".SecondActivity>
         <intent-filter>
          <action name="android.intent.action.VIEW" /> //intent  对象中引用的值
          <category name="android.intent.category.DEFAULT"> // intent.addCategory引用
          <data android:scheme="http">
          <data android:scheme="http">
          <data android:host="127.0.0.1">
          <data android:port="8080">
          <data android:path="路径">
        <intent-filter>
   <activity>
   //另一个功能配置
   Intent i = new Intent(Intent.ACTION_VIEW);
   i.setData(Uri.parse("http://baidu.com")); // geo 地理位置, tel : 电话
   startActivity(i);
  • intent 数据传递功能
   //利用intent进行传递数据
   Intent i = new Intent(Intent.ACTION_VIEW);
   i.putExtra(key,value);
    startActivity(i);
    //利用Bundle也可以传数据
    Intent intent=new Intent(MainActivity.this,TwoActivity.class);
    Bundle bundle=new Bundle();
    bundle.putString("name","张三");
    bundle.putInt("age",18);
    bundle.putString("gender","男");
    intent.putExtras(bundle);
    startActivity(intent);

Action 生命周期

图片:
Alt

各种布局控件

   <ProgressBar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/progress_bar"
        />
	// java 代码
     if(bar.getVisibility()==View.GONE){  //进度条没出现吗?
                           bar.setVisibility(View.VISIBLE);
                       }else{
                           bar.setVisibility(View.GONE);
                       }
     ------------------------------------------------------
       <ProgressBar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/progress_bar"
        android:max="100"
        style="?android:attr/progressBarStyleHorizontal"
        />
        //bar ->ProgressBar经过findViewById()之后的对象
         int  a = bar.getProgress();
                        a = a+10;
                        bar.setProgress(a);
       //横向的进度条设置

新的基本布局

  • Precent Layout
    此布局不同于LinearLayout,RelativeLayout,帧布局,
    第一步、 打开app/build.gradle文件,添加依赖库
    dependencies{
     //........
     compile 'com.android.support:percent:24.2.1' }
     //当android studio弹出一个框的时候点击sync Now
    
    《第一行代码》书本版本可能和你的不一样。解决方法如下
    找到android SDK的文件夹 \AndroidSDk\extras\android\m2repository\com\android\support\percent
    在这里就能看到各种版本的,这里我选择26的26.0.0-alpha1,重新导入,之后重新Sync就可以了!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值