第一章
1、使用Android的日志工具Log
在安卓中,不要使用System.out.println();语句哦,要不然非得招来老板的骂声呢
Log.v(); 对应级别verbose
Log.d(); 对应级别debug
Log.i(); 对应级别info
Log.w(); 对应级别warn
Log.e(); 对应级别error
Log.d()方法传入两个参数,第一个是tag(一般传入类名)第二个就是msg,及想要打出的类名。
第二章
1、探究活动
活动是一种可以包含用户界面的组件,主要用于和用户进行交互。
在Android Studio中直接可以创建一个活动Activity,这样的就不用需要在AndroidManiFest.xml中注册了(在创建的时候会自动创建一个layout布局,一次要想创建活动的就直接先创建活动,在创建活动响应的布局)
2、隐藏标题栏
在onCreate()方法的第二行,也就是在setContentView()前面加上requestWindowFeature(Window.FEATURE_NO_TITLE);
3、在活动中使用Toast
这个一般用于提示开发人员,这个事件是否发生了。
Toast.makeText(1,2,3);
三个参数分别是:
第一个是Context,也就是Toast要求的上下文,一般都会填入当前活动的name.this。
第二个是Toast显示的参数
第三个是显示时长Toast.LENGTH_SHORT,Toast.LENGTH_LONG
4、在活动中使用Menu
在Menu菜单下创建Menu菜单项,然后通过
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar ifit is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
然后在public boolean onOptionsItemSelected(MenuItem item) {
}方法中添加要行应的内容
菜单键一般不会显示出来的,只有按下了Menu键,菜单才会在显示出来
5、销毁一个活动
Activity类提供了一个finish()方法,调用这个方法就能销毁一个程序,点击了触发了finish(),就会销毁活动
6、使用Intent在活动之间穿梭
1> 使用显示的Intent
显示的Intent,Intent有多个构造函数的重载,其中一个是Intent(Context pageageContext,Class<?> cls);
第一个参数是Context要求提供一个启动活动的上下文,第二个参数Class则是指定想要启动那个目标活动。
构建好了活动之后,就把创建好的对象传入startActivity()方法启动目标活动。
Intent intent = new Intent(MainActivity.this,SecondActivity.class); startActivity(intent);
2> 使用隐式的Intent
相比显示的,隐式的不明确之处我们要启动的哪个活动,而是指定了一系列抽象的action和category信息,然后交给系统来分析这个Intent
当创建一个隐式的活动后
在AndroidManiFest.xml文件下,
<action android:name="com.example.yinlei.activity.ACTION_START"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="com.example.yinlei.activity.MY_CATEGORY"/>
然后在响应的地方这样声明一个活动
Intent i = new Intent("com.example.yinlei.activity.ACTION_START"); i.addCategory("com.example.yinlei.activity.MY_CATEGORY"); startActivity(i);
7、向下一个活动传递数据
1>显示的传入数据
第一个活动中这样写
String data = "Hello FourActivity"; Intent i1 = new Intent(MainActivity.this,FourActivity.class); i1.putExtra("extra_data", data); startActivity(i1);
第二个活动这样写
Intent intent = getIntent(); 获取用于启动FourActivity的Intent String data = intent.getStringExtra("extra_data");然后调用此方法传入相应的数据 Log.d("FourActivity",data);
2>给上一个活动传入数据
首先Intent i2 = new Intent(MainActivity.this,FourActivity.class); startActivityForResult(i2,1);
然后在下一个活动中添加能返回到上一层的代码
Intent intent = new Intent(); intent.putExtra("data_return", "Hello MainActivity"); setResult(RESULT_OK, intent); finish();
最后要在第一个活动中重写onActivityResult()这个方法
switch (requestCode) { case 1: 这个1就是刚才传入的那个1 if (resultCode == RESULT_OK) { String returnData = data.getStringExtra("data_return"); Log.d("MainActivity", returnData); } break;
onActivityResult(int requestCode, int resultCode, Intent data)
有三个参数:
第一个是requestCode,即我们在启动活动的时候传入的请求码
第二个是resultCode,即我们在返回数据的时候传入的处理结果
第三个是data,即我们携带者返回数据的Intent
8、活动的生命周期
活动的启动模式:
standad singleTop single Task singleInstance
9、随时随地的退出程序
可以建立一个ActivityCollector类作为活动管理器
在这里创建三个静态方法
addActivity() 添加活动
removeActivity() 移除活动
finishAll() 结束活动
当然了哈,要在每个活动的启动后调用addActivity()方法
然后在要结束的活动中调用finishAll()