Android基础知识

1. Activity的生命周期

  • onCreate:Activity在启动时会被创建,后面一般不会在调用该方法(除非例外情况,将Activity回收,例如内存不足);
  • onStart:Activity启动时,会调用该方法;
  • onResume:Activity可视化时,会调用该方法;
  • onPause:Activity不可见时,会调用该方法;
  • onStop:Activity完全不可见时,会调用该方法;
  • onDestroy:Activity被回收时,会调用该方法。
  • onRestart:上一个Activity没有被回收时,返回可以调用该方法(例如,通过startActivity跳转另一个Activity,可以使用finish返回上一个Activity,此时系统就会调用onRestart方法)

2. Toast

该方法主要作用是弹框,Toast.makeText(Context context, CharSequence text, @Duration int duration)

  • context:上下文内容
  • text:显示的文本
  • duration:弹框展示的时长(Toast.LENGTH_SHORT、Toast.LENGTH_LONG)
    例子:Toast.makeText(MainActivity.this, “弹框学习”, Toast.LENGTH_LONG);

3. Intent

该方法主要用于Activity的转递,Intent(Context packageContext, Class cls);

  • packageContext:当前Activity上下文
  • cls:跳转的Activity实体类
    一般跟startActivity一起使用,达到跳转试图的作用。

4. registerForActivityResult

该方法主要用于接收上一个Activity返回的数据,
registerForActivityResult(
@NonNull ActivityResultContract contract,
@NonNull ActivityResultCallback callback)

  • contract:数据格式限制,new ActivityResultContracts.StartActivityForResult()
  • callback:数据回调接口,onActivityResult(ActivityResult result),函数式接口。

5. onSaveInstanceState

该方法用于某个Activity被回收后,先前数据无法获取的情况。可以提前将重要数据放在该方法的Bundle上。然后再Activity的onCreate添加判空逻辑(如果为null,则取savedInstanceState中拿数据)了。

6. Activity的启动模式

  • standard:每次需要活动都重新创建
  • singleTop:每次去栈顶查需要的活动,不在栈顶就重新创建
  • singleTask:在当前应用程序中只存在一个单实例
  • singleInstance:在所有程序的上下文,都只存在一个单实例(会开辟一个单例栈,存放单实例)
    在AndroidManifest.xml的activity标签中配置,android:launchMode=“singleInstance”。

7. TextView

  • android:layout_width:填充宽度,match_parent【与父级同宽】,wrap_content【由内容填充宽度】;
  • android:layout_height:填充高度,match_parent【与父级同高】,wrap_content【由内容填充高度】;
  • android:gravity:文字对齐方式,top、bottom、left、right、center等;
  • android:size:文本内容;
  • android:textSize:文本大小【sp为单位】;
  • android:textColor:文本颜色;
  • android:id:组件id

8. Button

  • android:textAllCaps:false,取消默认英文字母全大写【系统默认将所有英文字母设置为大写】;
  • android:layout_gravity:水平居中;

9. EditText

该组件为文本框

  • android:hint:提示输入信息
  • android:maxLines:输入最大的行数

10. ImageView

该组件为图像域

  • android:src:指定图像地址,一般使用**@drawable/img_src格式
    在Activity可以通过setImageResource()改变图像地址,一般使用
    R.drawable.img_src**格式

11. ProgressBar

该组件为进度条,使用可以参考该文章:进度条使用参考

  • style=“?android:attr/progressBarStyleHorizontal”,设置为水平进度条,默认为圆形进度条;
    可以通过Activity设置进度条状态,progressBar.setVisibility(),三个参数,visible【可见】,invisible【不可见】,gone【不仅不可见,还不会占用屏幕空间】

12. AlertDialog

该组件为弹框提示,有点确认、删除那味道。通过Activity实现,Demo如下

sendBtn.setOnClickListener(new View.OnClickListener() {
	  @Override
	   public void onClick(View v) {
	       AlertDialog.Builder builder = new AlertDialog.Builder(FirstActivity.this);
	       builder.setTitle("发送消息");
	       builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
	           @Override
	           public void onClick(DialogInterface dialog, int which) {
	               Toast.makeText(FirstActivity.this, "确认消息发送!", Toast.LENGTH_SHORT).show();
	           }
	       });
	       builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
	           @Override
	           public void onClick(DialogInterface dialog, int which) {
	               Toast.makeText(FirstActivity.this, "取消消息发送!", Toast.LENGTH_SHORT).show();
	           }
	       });
	       builder.show();
	   }
});

13. ProgressDialog

该组件与AlertDialog使用类似,弹框进度条;

14. LinearLayout

线性布局,依次排列的意思。

  • android:orientation,有两个参数可选,horizontal【水平,android:layout_*记得设置为wrap_content】,vertical【垂直】

15. RelativeLayout

相对布局,手动调整位置。

  • android:layout_alginParentTop:顶部(设置true)
  • android:layout_alginParentBottom:底部(设置true)
  • android:layout_alginParentLeft:靠左(设置true)
  • andorid:layout_alginParentRight:靠右(设置true)
  • android:layout_centerInParent:居中(设置true)
  • android:layout_toLeftOf:位于某个控件的左侧(控件ID)
  • android:layout_toRightOf:位于某个控件的右侧(控件ID)
  • android:layout_above:位于某个控件的上方(控件ID)
  • android:layout_below:位于某个控件的下方(控件ID)

你可能感兴趣的:(android)