Android基础学习——Day01

1.Android四大组件
2.Android所有组件都要再AndroidManifest.xml配置文件里注册。
  对自定义活动Activity需要注册,如果要注册为主活动需要加上以下代码:

  <activity android:name=".FirstActivity"             
            android:label="@string/app_name">            //注册FirstActivity活动,并且设置该活动标题为app_name
            //下面的代码表示该活动是主活动
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />
                <category   android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>

3.在Java中通过R.XXX.xxx获得某资源的引用
 在XML中通过@XXX/xxx获得某资源的引用

4.日志工具类Log
  Log.v(tag,msg):verbose,级别最低
  Log.d(tag,msg):debug,比verbose高一级
  Log.i(tag,msg):info,比debug高一级
  Log.w(tag,msg):warn,比info高一级
  Log.e(tag,msg):error,比warn高一级
 其中,tag一般传入当前类名,msg是想要打印的具体内容
   
 由于Log的所有打印都要输入一个tag,可以在类的成员变量区域输入logt,然后按下Tab键,就会自动生成一个TAG常量。

5.在XML中定义一个ID语法为:@+id/XXX
 在XML中引用一个ID的语法为:@id/XXX

 定义控件的属性宽和高
   android:layout_width=”match_parent” :表示当前元素和父类元素一样宽
   android:layout_height=”wrap_content”:表示当前元素高度刚好包含里面的内容

6.绑定控件
  通过findViewById(R.id.xxx)方法获取到在布局文件中定义的元素
  通常绑定之后就需要对该控件设置监听,设置点击监听方法是setOnclickListener(new View.onClicklistener(){})
  
6.Toast提示
  通过静态方法makeText(Content, String , int)创建出一个Toast对象,第一个参数是一个Content对象,可以直接传入当前活动,XxxActivity.this ;第二个参数是要显示的文本;第三个参数是Toast要显示的时长,两个内置常量有Toast.LENGTH_LONG和Toast.LENGTH_SHORT。最后调用以下show()方法,显示该Toast。
  Toast.makeText(Content, String , int).show() ;

7.菜单menu
  菜单项 item
  要在活动中添加菜单,可以重写onCreateOptionsMenu(),通过getMenuInflater()方法得到MenuInflater对象,再调用inflate()方法给当前活动创建菜单,方法返回true,表示允许菜单显示出来,false表示不显示。

    /*
        创建菜单
     */
public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main,menu);
        return true ;
    }
  /*
      重写onOptionsItemSelected()方法
      判断用户点击的菜单项,并作出反馈。
      通过getItemId()方法获取菜单项的ID来判断用户点击的哪个菜单项。
      */
public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()){
            case R.id.add_item:
                Toast.makeText(this,"you clicked Add" ,Toast.LENGTH_LONG).show();
                break;
            case R.id.remove_item:
                Toast.makeText(this,"you clicked remove",Toast.LENGTH_LONG).show();
                break;
            default:

        }
        return true ;
    }

8.销毁一个活动
  finish();

9.意图Intent
  可以在各个组件之间交互,可以在不同的组件之间传递数据。
  具体查看该大神博客 

https://blog.csdn.net/qq_31370269/article/details/50725701

 (1)显式Intent

    Intent intent = new Intent(FirstActivity.this,SecondActivity.class) ;
   intent.putExtra("extra_data", data);
   //startActivity(intent);    //不带返回值类型的意图
   startActivityForResult(intent,2);   //带返回值的意图,第二个参数作为返回值的请求值,标志从哪个Activity返回的结果

 (2)隐式Intent

    /*通过意图匹配器来匹配跳转活动
    */
    Intent intent = new Intent("com.example.toSecondActivity.ACTION_START") ; //这里的意图要和意图匹配器相同或者相对应才能实现跳转
   intent.putExtra("extra_data", data);  //传递数据,第一个参数是键,第二个参数是值,即要传递的具体内容
   startActivity(intent); 

    //geo表示显示地理位置,tel表示拨打电话
    Intent intent = new Intent(Intent.ACTION_DIAL) ;
     intent.setData(Uri.parse("tel:10086")) ;  //跳转到拨号界面,并且输入10086号码
     startActivity(intent);
     —————————————————————————————————————————————————————————————————————
     /*接收Intent传递的数据
     */     
     Intent intent = getIntent() ;
     String data_view = intent.getStringExtra("extra_data") ;
     Log.d("SecondActivity", "onCreate: get extra_data");
     ————————————————————————————————————————————————————————————————————————
     /*返回数据给上一个活动
         返回数据可以由按键监听实现
         也要重写Back按键方法onBackPressed()实现
     */
     //设置返回数据
     Intent backIntent = new Intent() ;
     backIntent.putExtra("data_return" , "SecondActivity to FirstActivity") ;
     setResult(RESULT_OK,backIntent); //向上个活动返回数据,第一个参数选值由RESULT_OK和RESULT_CANCLED,第二个参数是返回带有数据的Intent
     finish();   //销毁当前活动

————————————————————————————————————————————————————————————————————————————
    /*接收返回的数据
        重写onActivityResult()方法
          requestCode:请求值,由startActivityForResult()方法的第二个参数确定,标志当前返回值从哪个活动传来
          resultCode:由setResult()的第一个参数确定
          data:由setResult()的第二个参数确定
    */
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch (requestCode){
            case 2:
                if (resultCode == RESULT_OK){
                    String dataFromSecond = data.getStringExtra("data_return") ;
                    Log.d("FirstActivity", dataFromSecond);
                }
        }
    }

————————————————————————————————————————————————————————————————————————————
     /*意图匹配器
     */
     //表示当前活动是主活动,程序的入口
      <intent-filter>
          <action android:name="android.intent.action.MAIN" />
          <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>

    //表示当前活动支持打开网页,并且协议必须是http的网址
    <intent-filter>
         <action android:name="android.intent.action.VIEW" />
         <category android:name="android.intent.category.DEFAULT" />
    <data android:scheme="http" />
    </intent-filter>

10.活动的生命周期
  7个回调方法
  3中生存期
    完整生存期:onCreate() - onDestory()
    可见生存期:onStart() - onStop()
    前台生存期:onResume() - onPause()
    这里写图片描述

11.活动的启动模式
  standard
  singleTop
  singleTask:
  singleIntance:

12.BaseActivity

13.活动的最佳写法

猜你喜欢

转载自blog.csdn.net/u012990327/article/details/79969014