一、创建第一个Android项目(HelloWorld)
1.创建HelloWorld项目
2.创建、启动虚拟器
3.运行HelloWorld
二、分析Android程序(常用)
1.app
1)build:主要包含一些编译时自动生成的文件。
2)libs:放jar包的目录。
3)androidTest:用来编写AndroidTest测试的,可以对项目进行一些自动化测试。
4)java:放置所有的Java代码。
5)res:资源目录-图片放到drawable目录下,布局放到layout目录下,字符串放到values目录下。
6)ANdroidManifest.xml:整个Android项目的配置文件,在程序中定义的所有四大组件都要在此文件中注册,另外还可以在这个文件中给应用程序添加权限声明。
7)test:编写UnitTest测试用的,是对项目进行自动化测试的另一种方式。
8)gitignore:用于app模块内的指定的目录或文件排除在版本控制之外,作用和外层的.gitignore类似。
9)build.gradle:app模块的gradle构建脚本,指定很多项目构建相关的配置。
10)proguard-rules-pro:用于指定项目代码的混淆规则。
2.gradle:gradle wrapper的配置文件
3.gitignore:将指定的目录或文件排除在版本控制之外。
4.build.gradle:项目全局的gradle构建脚本。
5.gradle.properties:全局的gradle配置文件,配置的属性将会影响到项目中所有的gradle编译脚本。
6.gradlew和gradlew.bat:在命令行界面执行gradle命令。其中gradlew是在Linux或Mac系统中使用,gradlew.bat在 Windows系统中使用
7.local.properties:用于指定Android SDK路径,当SDK位置发生变化,将文件中的路径改成新的位置即可。
三、手动创建项目
1.活动:项目中的任何活动都应该重写Activity的onCreate()方法。
2.创建和加载布局
1)右击app/src/main/res目录→New→Directory,创建名为layout的目录,然后对layout目录右击→Layout resource file,将布局命名为first_layout。OK完成布局创建。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button //添加一个Button元素
android:id="@+id/button_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button 1"
/>
</LinearLayout>
2)回到FirstActivity在onCreate()方法中加入如下代码
public class FirstActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.first_layout); //给当前的活动加载一个布局
}
}
3)在AndroidManifest文件中注册
Android studio自动给注册过了。
4)配置主活动:在<activity>标签内部加入<intent-filter>标签,并在标签中加入
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
使用android:label指定活动中标题栏的内容。
3.在活动中使用Toast(吐司)
在onCreate()方法中添加如下代码
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.first_layout);
Button button1 = (Button) findViewById(R.id.button_1);
button1.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
Toast.makeText(FIrstActivity.this, "You clicked Button 1",
Toast.LENGTH_SHORT).show();
}
});
}
4.在活动中使用Menu
1)在res目录下右击New→Directory创建menu文件夹,在新建一个名叫main的菜单文件,右击menu→New→Menu resource file,输入文件名,点OK完成创建。在main.xml中添加如下代码:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item //创建了两个菜单项
android:id="@+id/add_item"
android:title="Add"/>
<item
android:id="@+id/remove_item"
android:title="Remove"/>
</menu>
2)回到FirstActivity中重写onCreateOptionsMenu()方法,重写方法可以使用快捷键Ctrl+O
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main,menu);
return true;
}
3)定义菜单响应事件:在FirstActivity中重写onOptionsItemSelected()方法:
@Override
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_SHORT).show();
break;
}
return true;
}
5.销毁一个活动:finish()
button1.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
finish();
}
});
6.使用Intent
1)使用显式Intent
[1]再创建一个活动,命名为SecondActivity
[2]在second_layout.xml中定义一个按钮Button 2
button1.setOnClickListener(new View.OnClickListener(){
@Override //FirstActivity中用Button1按钮打开SecondActivity活动
public void onClick(View view) {
Intent intent = new Intent(FirstActivity.this,SecondAcitvity.class);
startActivity(intent);
}
});
2)使用隐式Intent
[1]在<activity>标签下配置<intent-filter>内容
<activity android:name=".SecondAcitvity">
<intent-filter>
<action android:name="com.example.activitytest.ACTION_START" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
[2]修改FirstActivity中按钮的点击事件
button1.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view) {
Intent intent = new Intent("com.example.activitytest.ACTION_START");
startActivity(intent);
}
});
[3]定义多个category
1、在<intent-filter>中再添加一个category的声明
<activity android:name=".SecondAcitvity">
<intent-filter>
<action android:name="com.example.activitytest.ACTION_START" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="com.example.activitytest.MY_CATEGORY" />
</intent-filter>
</activity>
2、修改FirstActivity中按钮的点击事件
button1.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view) {
Intent intent = new Intent("com.example.activitytest.ACTION_START");
intent.addCategory("com.example.activitytest.My_CATEGORY");
startActivity(intent);
}
});