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.youkuaiyun.com/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.活动的最佳写法