欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android复习

程序员文章站 2022-03-18 11:02:26
Android复习一.日志工具:Log.v():用于打印那些最为琐碎的,意义最小的日志信息。对应级别:verboseLog.d() :打印调试信息。对应级别:debugLog.i():打印比较重要的信息。对应级别:infoLog.w():打印警告信息。对应级别:warnLog.e():打印程序中的错误信息。对应级别:errorString TAG=“test”;Log.d(TAG,"打印调试信息");二.活动(Activity)1.使用Toast提醒消息:Toast.makeTe...

Android复习

一.日志工具(Log)

Log.v():用于打印那些最为琐碎的,意义最小的日志信息。对应级别:verbose
Log.d() :打印调试信息。对应级别:debug
Log.i():打印比较重要的信息。对应级别:info
Log.w():打印警告信息。对应级别:warn
Log.e():打印程序中的错误信息。对应级别:error

String TAG=“test”;
Log.d(TAG,"打印调试信息");

二.活动(Activity)

1.使用Toast提醒消息:

Toast.makeText(MainActivity.this,"通知消息",Toast.LENTH_SHORT).show();

2.使用Intent在活动之间穿梭(实现页面跳转)

//显式Intent
Intent intent=new Intent(FirstActivity.this,SecondActivity.this);
startActivity(intent);
//隐式Intent
//在注册文件manifest.xml中声明需要跳转的界面的action和category
//每个Intent只能指定一个action,能指定多个category
<activity android:name=".SeconActivity">
	<intent-filter>
		<action android:name="com.example.activitytest.ACTION_ATART">
		<category android:name="android.intent.category.DEFAULT">
		<category android:name="com.example.activitytest.MY_CATEGORY">
	</intent-filter>
</activity>
//在主界面有:
Intent intent=new Intent("com.example.activitytest.ACTION_ATART");
intent.addCategory("com.example.activitytest.MY_CATEGORY");//使用代码添加category时,必须在mannifest里面注册
startActivity(intent);
//使用Intent打开网页
Intent intent=new Intent(Intent.ACTION_VIEW);//Intent.ACTION_VIEW是android内置的一个动作
intent.setData(Uri.parse("http://www.baidu.com"));
startActivity(intent);
//使用Intent拨打电话
//必须加tel:
//geo显示地理协议
Intent intent=new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:10086"));
startActivity(intent);
//使用Intent发短信
Uri uri=Uri.parse("smsto:10086");
Intent intent new Intent(intent.ACTION_SENDTO,uri);
intent.putExtra("sms_body","Hello");
startActivity(intent);

3.使用Intent传递数据

从FirstActivity传值到SecondActivity

//传递数据使用putExtra()方法
Intent intent=new Intent(FirstActivity.this,SecondActivity.class);
intent.putExtra("extra_data","data");//第一个参数是键名,第二个参数是键值(真正传递的数据)
startActivity(intent);
//接收数据
Intent intent=getIntent();//通过getIntent()方法获取用于启动SecondActivity的Intent
String data=intent.getStringExtra("extra_data");//传递的整形则是getIntExtra(),布尔型则是getBooleanExtra()

从SecondActivity回传数据到FirstActivity

//在FirstActivity中有:
Intent intent=new Intent(FirstActivity.this,SecondActivity.class);
startActivityForResult(intent,1);//第二个参数是请求码,必须唯一
//在SecondActivity中有:
Intent intent=new Intent();
intent.putExtra("data_return","hello FirstActivity");
setResult(RESULT_OK,intent);//第一个参数是回调码
finish();//销毁当前活动
//在FirstActivity中书写获取回调码的后续逻辑
//直接输入onActivityResult
@Override
protected void onActivityResult(int requstCode,int resultCode,Intent data){
	switch(requstCode){
		case 1:
				if(resultCode==RESULT_OK){
					String returnData=data.getStringExtra("data_return");
				}
				break;
		default:
	}
}

4.使用Bundle和序列化类传递数据

使用Bundle传递数据

//在FirstActivity中有
Intent intent=new Intent(FirstActivity.this,SecondActivity.class);
Bundle bundle=new Bundle();
bundle.putExtra("userNo","001");
bundle.putExtra("userName","CSL");
intent.putExtra(bundle);
startActivity(intent);
//在SecondActivity获取数据
Bundle bundle=this.getIntent().getExtras();
String userNo=bundle.getString("userNo");

序列化类传递数据

//
public class UserInfo implements Serializable{
	private String userNo;
	private String userName;
	public String getUserNo(){return userNo;}
	public String setUserNo(String userNo){this.userNo=userNo;}
	public String getUserName(){return userName;}
	public String setUserName(String userName){this.userName=userName;}
}
//在FirstActicity录入数据
UserInfo user=new UserInfo();
user.setUserno("001");
user.setUserName("CSL");
intent.putExtra("user",user);
startActivity(intent);
//在SecondActivity获取数据
UserInfo user=(UserInfo)this.getIntent().getSerializableExtra("user")

5.活动的生命周期

Android是使用任务(Task)来管理活动的,一个任务就是一组存放在栈里的活动的集合,这个栈也被称为返回栈(Back
Stack)。在默认情况下,每当启动一个新的活动,它会在Back
Stack中入栈,并处于栈顶的位置。当按下Back键或者调用finish()方法时,处于栈顶的活动会出栈,使得前一个入栈的活动处于栈顶。系统总是会显示处于栈顶的活动。

4.1活动状态:

每个活动在其生命周期最多可能有4种状态

  • 01.运行状态

    当一个活动处于Back Stack的栈顶时,该活动就处于运行状态。

  • 02.暂停状态

    当一个活动不再处于栈顶位置,但仍然可见时,这时活动就进入了暂停状态。在内存低的情况下,不能系统killed(杀死)

  • 03.停止状态

    当一个活动不再处于栈顶位置,并且完全不可见的时候,就进入了停止状态。在内存低的情况下,能系统killed(杀死)

  • 04.销毁状态

    当一个活动从返回栈中移除后就变成了销毁状态。

4.2活动的生存期:

7个回调方法

  • onCreate()
  • onStart()
  • onResume()
  • onPause()
  • onStop()
  • onDestroy()
  • onRestart()
    Android复习

4.3Android的四种启动模式

指定启动模式:在注册文件中在标签中通过android:launchMode属性选择启动模式

  • standard模式:Activity的默认启动方式,每启动一个Activity就会在栈顶创建一个新的实例

  • singleTop模式:判断要启动的Activity实例是否位于栈顶,如果位于栈顶则直接复用,否则创建新的实例Android复习

  • singleTask模式:系统首先检查栈中是否存在当前Activity实例,如果存在则直接使用,并把当前Activity之上的所有实例全部出栈Android复习

  • singleInstance模式:启动一个新的任务战来管理Activity实例,无论从哪个任务战中启动该Activity,该实例在整个系统中只有一个Android复习

三.UI布局及控件

1.五种常见布局

  • 线性布局:以水平或者垂直方向排列
  • 相对布局:通过相对定位排列
  • 帧布局:开辟空白区域,帧里的控件(层)叠加,帧布局的大小由内部最大控件决定
  • 表格布局:表格形式排列。配合TableRow使用
  • 网格布局:与表格类似以行列排列
  • 绝对布局:通过x,y坐标排列

2.常用单位

  • px:像素
  • pt:磅数
  • dp:基于屏幕密度的抽象单位
  • sp:可伸缩像素,推荐设置文字大小时使用

3.控件

控件太多,属性等详情查找资料即可

3.1创建自定义控件

3.2ListView

4.常见对话框

//普通对话框
//声明对象并创建对话框
final AlertDialog alertDialog=new AlertDialog.Builder(MainActivity.this).create();
//设置相关信息
alertDialog.setTitle("对话框");
alertDialog.setMessage("是否确定退出?");
alertDialog.setIcon(R.mipmap.ic_launcher);
//显示对话框
alertDialog.show();      
//单选对话框
new AlertDialog.Builder(MainActivity.this)
       .setTitle("请选择性别")//设置选项内容,0标识默认选中第一项
       .setSingleChoiceItems(new String[]{"男", "女"}, 0,
          		new DialogInterface.OnClickListener() {
                  	@Override//建立监听,允许被点击
                         public void onClick(DialogInterface dialog, int which) {
                                        
                                    }
                                }).setPositiveButton("确定",null)
          .show();
//多选对话框
new AlertDialog.Builder(MainActivity.this)
        .setMultiChoiceItems(new String[]{"旅游","美食","汽车","宠物"},null,null)
        .setPositiveButton("确定",null)
        .show();
//进度条对话框
final ProgressDialog progressDialog;
progressDialog=new ProgressDialog(MainActivity.this);
progressDialog.setTitle("进度条对话框");
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.show();

四.碎片(Fragment)

1.例子

以新闻布局为例

2.碎片的生命周期

五.广播(Broadcast Receiver)

六.持久化技术(SQLite和SharedPreference)

七.内容提供器(Content Provider)

八.多媒体(Notification,Camera,Album,MediaPlayer)

九.服务(Service)

本文地址:https://blog.csdn.net/weixin_43408201/article/details/109616789

相关标签: Android 复习