Android 活动的初步尝试

昨天晚上和Redim吃饭的时候听他说有人的年度项目已经做完了,所以凭着自己薄弱的Java底子,暂时自己也做了一些初步的尝试,从昨天到今天中午主要就是在四大组件中的Activity中进行的,踩到了很多坑,总结一下。 >-<

一个应用程序中可以包含很多个活动,但必须有一个活动(除非可能是一些插件之类的)。打开Android studio新建一个project并选择”Add no Activity”,主要是为了体验一下从无到有的过程。切换到Android视图后,在app/src/mani/java/com.xxx.ActivityTest 目录上点击右键New,这时有两种选择:

  • 可以选择Java class,这样的话就需要新建一个类,然后还需要自己去写布局文件一以及注册。
  • 选择Activity,系统会自动生成一系列文件,如布局文件之类的,并且会自动在mainfest中注册。

为了完整的体验从无到有,我选择了前者。接着就需要在Java 文件中extends Activity基类,并重写onCreat()方法。此时需要注意一点就是如果我们继承的是Activity基类的话标题栏Title是默认为不显示。但是如果我们继承ActionBarActivity这个基类的时候,其子类是不支持requestWindowFeature(Window.FEATURE_NO-TITLE)方法。即标题栏无法隐藏。

 

接下来我们得为这个活动写一个布局文件:在res目录上点击new新建一个Android resource directory,并在弹出的对话框选择Resource type 为layout.然后在layout目录下new一个Layout resource file即可。打开文件后我们发现已经有了一个<LinearLayout>控件,这是一个线性布局的控件。为了进行接下来的操作,我加入了两个button控件。

现在解释一些东西:android:orientation="vertical"这句代码是表示该布局下元素垂直排列。”match_parent”是指该元素与父亲元素的长或宽一样,”wrap_content”则是指当前的元素的长宽恰好包含其内容即可。android:id="@+id/button_1"这句代码是为了当前控件加了一个独一无二的id值,并可以把这个id写入R文件。这是定义一个控件ID的方法,但是引用一个id的话只需要android:id="@id/xxx即可。

接着我们要到FirstActivity.Java文件中写有关layout文件的代码了。setContentView()方法我们传入了一个布局文件的id,只需要调用R.layout.first_avtivity_layout即可得到id。

看一下效果图:

QQ图片20160228163319

 

写好布局文件后我们就需要在AndroidManifest.xml 文件中注册。

解释一下android:name是指具体注册某一个活动,而android:label是指定活动中标题栏的内容(但是在前面我也说过标题栏自动隐藏了),但是如果为主活动指定的label还会成为Launcher中应用程序的名称。而<intent-filter>这几行内容是把FirstActivity作为了我们这个程序的主活动。注意大小写。我就是因为这个坑了好几次。

这样如果你点击button后会发现并没有什么事情发生。Android中Toast是一种提醒方式,它可以把一些信息传递给用户,而且一段时间后自动消失。

首先我们需要定义一个弹出Toast触发点,我们就把点击Button_1设置为触发点。在onCreate()方法加入代码:

请先无视button2。findViewById()方法可以获取到布局文件中定义的元素,这里我们得到了一个按钮实例,但是这样得到的对象是View对象,所以类型转换为Button。接着我们再把这个按钮注册为一个监听器。把Toast弹出在onClick方法里编写。

button2我是把他作为一个退出按钮,所以我在它的onClick方法内写的是finish(),这个方法可以销毁当前活动。

一般安卓手机内都是有菜单栏的。所以可以res目录下建立一个menu文件夹,并在xml里编写如下代码:

<item>标签是用来创建一个具体的菜单项。接着为了让我们写的菜单可以在活动中显示以及响应。所以我们还需要重写如下的方法。

 

这样我大概就写出了一个最基本的活动了吧。唉….居然要开学了= =

发表评论

电子邮件地址不会被公开。 必填项已用*标注