android学习(一)Activity
发现android源于java,学习起来一下跨度挺大,上手果然是要一个过程,感谢这个网站http://www.mars-droid.com,以及所提供的入门帮助,下了一堆入门级源码后,学习进度加快了很多。
android中有个Activity的概念,一切界面源于此.
/**
* 创建Activity的要点
* 1.一个Activity就是一个类,并且这个类要继承Activity
* 2.需要复写onCreate方法
* 3.每一个Activity都需要在AndroidManifest.xml文件当中进行配置
* 4.为Activity添加必要的控件
* @author mars_chenchuan
*
*/
另外,View的概念当于windows中的wnd,是一切窗口的(包括控件)的基类。
在android中有了layout的概念,意为通过对某些xml文件的编写,生成界面元素的功能。
以下的函数可以将xml中的对象映射到代码空间中,当作控件一样进行使用。
TextView myTextView = (TextView)findViewById(R.id.myTextView);d
findViewById()是一个重要的桥梁,将xml中定义的控件映射到代码中进行使用。
R是一个非常重要的类,由系统自动生成,不允许手工修改,凡layout目录中定义的控件,都会分门别类在R类中作一映射,以方便后期的调用。
代码:
public class Activity01 extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
//调用父类当中的onCreate方法
super.onCreate(savedInstanceState);
//设置当前的Activity使用main.xml作为布局文件,
//其中R.layout.main是main.xml文件在R.java文件当中的ID
setContentView(R.layout.main);
//在main.xml文件当中所定义的控件,都会在R.java文件当中产生相应的ID,
//本行代码的作用就是在根据这个ID来取得代表该控件的对象
TextView myTextView = (TextView)findViewById(R.id.myTextView);
//这一行的作用和上一行类似,只不过这一次取得的是代表按钮的对象
Button myButton = (Button)findViewById(R.id.myButton);
//为TextView控件设置String值
myTextView.setText("我的第一个TextView");
//为Button控件设置String值
myButton.setText("我的第一个Button" + "\n" + "test");
}
}
layout中的main.xml文件代码:
<?xml version="1.0" encoding="utf-8"?>
<!-- 该文件是布局文件,是说在Activity当中所使用的控件,以及控件的位置,都可以在这个文件当中进行之指定 -->
<!-- 声明一个线性布局(LinearLayout),这个布局也算是一个控件,它的布局方向是纵向,宽度和高度都是填满父控件。使用这种布局意味着所有的控件会像一条线一样排列 -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<!-- 声明一个TextView控件,该控件的宽度是填满父控件,也就是 上面的LinearLayout控件,高度是包裹住内容-->
<TextView
android:id="@+id/myTextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<!-- 声明一个Button控件,该控件的宽度是填满父控件,也就是 上面的LinearLayout控件,高度是包裹住内容-->
<Button
android:id="@+id/myButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>