android-学习笔记01
2017-03-29 本文已影响0人
figure_ai
大部分笔记都是来自郭霖前辈的《第一行代码》。内容也是觉得有用就记,相对来说比较混乱。
- 四大组件
- 活动(Activity):类似于OC的Controller,主要用于处理用户的交互事件
- 服务(Service):后台运行的服务,即使程序退出仍然可以在后台运行
- 广播接受器(BroadcastReceiver):允许应用接收来着各处的消息,比如电话/短信等
- 内容提供器(ContentProvider):为应用程序之间的数据共享提供了可能,比如读取系统电话薄中的联系人,就需要通过内容提供器来实现。
- Res目录详解
- Drawable开头的文件都是用来放图片的
- Values开头的文件夹是用来放字符串的
- Menu文件夹是用来放菜单文件的
- Layout文件夹是用来放布局文件的
- Mipmap文件夹是放启动图标的
- 内容的引用方式:
- 1、在代码中通过R.string.hello_world可以获得字符串的引用(R.文件名.健名或方法)
- 2、在XML中通过@string/hello_world可以获得字符串的引用(@文件名/健名)
二 logCat的使用
- 定义控件的属性
- android:id :给当前元素定义一个唯一标识符,之后可以在代码中对这个元素进行操作。
- 注:XML文件中引用一个id,使用@id/id_name,定义一个id使用@+id/id_name
- activity相关知识点
- activity通过setContetnView方法引用布局文件
- 所有activity都要在AndroidManifest.xml文件中进行注册才能生效
- 通过android:label指定活动中标题栏的内容
- 让activity成为主activity需加以下声明(点击图标即启动)
<intent-filter>
<action android:name="android.intent.action.MAIN"></action>
<category android:name="android.intent.category.LAUNCHER"></category>
</intent-filter>
- 注:应用程序没有声明主activity依旧可以安装,只是装后无法在启动器看到或者打开程序,这种一般是作为第三方服务供其他应用在内部调用。如: 支付宝快捷支付服务。
- Activity隐藏标题栏的代码:
requestWindowFeature(Window.FEATURE_NO_TITLE)
- 注:此句代码需在setContentView前执行,否则报错
- 在activity中,可以通过findViewById()方法返回一个view对象
Button btn1 = (Button) findViewById(R.id.first_btn);- activity中Toast的使用
- Toast是一个hud提示框,具体使用如下代码
Toast.makeText(FirstActivity.this, "不要点我啊",
Toast.LENGTH_SHORT).show();
- 调用Toast的静态方法makeText()就可创建,注意的是,该方法需传三个参数,第一个是上下文,因为activity本身就是一个上下文故传对应的activity.this即可,第二个参数是显示的内容,第三个参数是Toast显示的时长
- activity中创建菜单项
public boolean onCreateOptionsMenu(Menu menu) {
//创建菜单
getMenuInflater().inflate(R.menu.main, menu); return true;}
- 点击菜单的响应事件
public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) {
case R.id.add_item:
Toast.makeText(this, "点击添加", Toast.LENGTH_SHORT).show();
break;
case R.id.remove_item:
Toast.makeText(this, "点击移除", Toast.LENGTH_LONG).show();
break;
default:
break;
}
return true;}
- 销毁一个activity的两种方式
//手机按下back键
//通过调用finish()方法销毁activity
button1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { finish(); } });
- 2.3Intent的使用
- Intent是程序中各组件进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据。
- Intent分为显示Intent和隐式Intent
- 显式Intent的使用步骤:1. 创建Intent,2.调用startActivity()方法
Intent intent = new Intent(FirstActivity.this, MainActivity.class);startActivity(intent);- 隐式Intent:隐式Intent没有明确指出要启动哪个activity,而是指定了一系列抽象的action和category等信息,然后交由系统去分析这个Intent,并启动对应的activity。
- 要成为隐式Intent可以启动的activity,必须在AndroidManifest.xml文件中绑定对应action和category
AndroidManifest.xml文件中定义activiy对应的参数
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="com.example.anwser_mac.myapplication04.ACTION_SART"></action>
<category android:name="android.intent.category.DEFAULT"></category>
<category android:name="com.example.anwser_mac.myapplication04.my_category"></category>
</intent-filter></activity>
- 调用
Intent intent = new Intent("com.example.anwser_mac.myapplication04.ACTION_SART");
intent.addCategory("com.example.anwser_mac.myapplication04.my_category");
startActivity(intent);