|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
第一个Android项目-helloworld(二)
分析第一个Android项目:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
MainActivity继承自AppCompatActivity类,这是一种向下兼容的类,可以将Activity在各个系统版本中的特性和功能最低兼容到Android2.1系统。
Activity是Android系统提供的一个活动基类,我们所有的活动都必须继承它或者它的子类才能拥有活动的特性(AppCompatActivity是Activity的子类)
。@Override是重写父类onCreate()方法,该方法是一个活动创建时必定要执行的方法。可以看到onCreat()方法首先用super调用父类方法,防止调用子类方法产生递归,然后调用setContentView()方法,该方法引入布局文件。
布局文件都是定义在res/layout目录下,展开Layout目录,找到 hello_world_layout.xml文件。因为Android程序设计讲究设计逻辑和试图分离,所以单独写布局文件,再引入活动。
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.qingyang.helloworld.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
此外,活动必须在AndroidManifest.xml文件中声明,从中找出下列代码:
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
这段代码是对MainActivity活动进行注册,就像开车得有驾驶证一样,没有声明的活动是不能使用的,其中intent-filter里的两行代码非常重要,<action android:name="android.intent.action.MAIN"/> and <action android:name="android.intent.category.LAUNCHER"/>表示MainActivity是这个项目的主活动。(比如打开QQ后第一个界面所代表的活动就是主活动)
2: res目录
这个目录下存放项目中使用到的所有图片,布局,字符串等资源。其中图片存放在drawable目录下,布局存放在layout下,字符串放在values目录下,所以不用担心因为存放的东西太多而把整个目录弄得乱糟糟的。对于其他目录,暂时不用管它。
3:前行必备:使用Android的日志工具Log
【Log.v() 用于打印那些最为琐碎,意义最小的日志,对应级别为verbose(冗长的)】
【Log.d() 用于打印一些调试信息,级别为debug】
【Log.i() 用于打印一些比较重要的信息,级别为info】
【Log.w() 用于打印警告信息,warn】
【Log.e() error 打印错误信息】
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d("MainActivity","onCreate execute");
}
Log.d()方法中传入了两个参数:第一个参数是Tag,一般传入当前类名就行了,主要用于对打印信息进行过滤;第二个参数是msg,即打印内容。 |
评分
-
查看全部评分
|