Android学习笔记(二)

Android学习笔记(二)

http://yockii.javaeye.com/blog/456517

 

环境已经配置好了,按照我的思路,无论如何也得先把最简单的例子跑一遍,分析一下结构及源码,才去做其他的。做为开发人员,可能我的习惯并不算太好,因为我不是很关注它底层如何实现,我更关注的是,如何开发出能运行的应用程序,至少,在刚开始接触的时候是这样的。或许在开发了一段时间后,我会去研究实现原理……

 

二、简单的应用程序 Hello Android!

虽然这个程序非常简单,但也算是非常经典的程序,就像刚学语言时写的Hello World一样,有种亲切感。麻雀虽小,五脏俱全,让我们来建立这个简单的麻雀吧。

 

2.1 建立android工程

之前我也提过,我会以winXP+eclipse来开发。

打开eclipse,新建一个android工程,如图

这里我选择了Google APIs,因为在之前(笔记一里有提到)已经建立了一个Google APIs的AVD了,所以我这里就用它的sdk。Application name是可以不写的,名字都是自己取的哦。然后要注意这里的Package name,遵循java规范,要求至少有两层,也就是说,最少要有一个. 接下来这个Create Activity勾上,就是让插件自动帮我们创建Activity的子类,名字就是后面写的HelloAndroid。

点击finish,一个android工程就创建完了。

 

2.2 结构目录

 

2.3 编写代码

打开src下面的那个HelloAndroid.java文件,我们开始写代码了。

刚打开,我们看到就那么一点代码:

Java代码 复制代码
  1. package com.test;   
  2.   
  3. import android.app.Activity;   
  4. import android.os.Bundle;   
  5.   
  6. public class HelloAndroid extends Activity {   
  7.     /** Called when the activity is first created. */  
  8.     @Override  
  9.     public void onCreate(Bundle savedInstanceState) {   
  10.         super.onCreate(savedInstanceState);   
  11.         setContentView(R.layout.main);   
  12.     }   
  13. }  
package com.test;

import android.app.Activity;
import android.os.Bundle;

public class HelloAndroid extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

 并且很显然,是继承自Activity这个类。其实这个类比较重要的,android里面,一个现实在你面前的东东,就是一个activity……等我们以后再讨论吧,先把HA(Hello Android)做出来。

我们改写唯一的重写的 onCreate方法。代码如下:

 

 

 

 

Java代码 复制代码
  1. @Override  
  2. public void onCreate(Bundle savedInstanceState) {   
  3.     super.onCreate(savedInstanceState);   
  4.     TextView textview = new TextView(this);   
  5.     textview.setText("Hello Android!! HaHa, I'm Here");   
  6.     setContentView(textview);   
  7. }  
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        TextView textview = new TextView(this);
        textview.setText("Hello Android!! HaHa, I'm Here");
        setContentView(textview);
    }

 这里系统会自动给我们导入1个类:

Java代码 复制代码
  1. import android.widget.TextView;  
import android.widget.TextView;

 如果没有自动导入,可以按下eclipse的快捷键Ctrl+shift+o

 

2.4 运行程序

然后,右键点击工程,选择Run as--> Android Application就会启动AVG(没有建立的朋友这个时候会有提示让你建立,就相应地建立对应sdk版本的avg就可以了)



 

 

 

稍等一会儿,avg启动貌似有点慢的,开始似乎android_的字样,然后是Android的闪动图标,然后进入主界面,再然后自动进入了HA界面……

大家看到了,屏幕上就出现了想要的东西了吧。经典的程序在初学的时候还是很有用的。



 

2.5 修改代码

刚才运行的代码“很成功”。但是每个开发人员都不会提倡用这种编写代码的方式。因为它把逻辑层和展现层放在了一起,现在我们没有用到逻辑的东西,所以只需要View层即可。那么,我们的HA完全可以用布局来实现哦。

把HelloAndroid.java代码改回来,下面我来玩xml的布局,并产生同样的效果!

 

打开res中layout目录下的main.xml文件,会发现其中的代码也是超简单的(可能有些朋友出现的是可视化界面,请点击下面的main.xml标签切换到代码视图):

Xml代码 复制代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     >  
  7. <TextView     
  8.     android:layout_width="fill_parent"    
  9.     android:layout_height="wrap_content"    
  10.     android:text="@string/hello"  
  11.     />  
  12. </LinearLayout>  
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
</LinearLayout>

 给大家稍做解释:

LinearLayout 是一种布局格式。 xmlns:android是指明命名空间,非必须,但第一个节点必须写明

android:orientation指出了LinearLayout的布局格式

android:layout_width="fill_parent" 说明该元素的宽度填满整个父元素

android:layout_height="wrap_content" 说明该元素的高度以把自己内部的全部包住就好了

TextView  就是我们前面代码里面写过的那个,它是一个文字展现的元素。

android:text="@string/hello" 这个才是比较关键的,它指明了要引用values目录下Strings.xml文件中name="hello"的string节点的值。

当然我们直接在里面写android:text="Hello Android!HaHa"也是可以的,那就直接显示Hello Android!HaHa了。

 

好,既然系统帮我们都做好了代码,那么我们直接去values目录下的Strings.xml中看看吧

Xml代码 复制代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <resources>  
  3.     <string name="hello">Hello World, HelloAndroid!</string>  
  4.     <string name="app_name">Hello Android</string>  
  5. </resources>  
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, HelloAndroid!</string>
    <string name="app_name">Hello Android</string>
</resources>

 

 我们改改name="hello"的值,顺便改改app_name的值看看有什么效果:

Xml代码 复制代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <resources>  
  3.     <string name="hello">Hello World, We R Chinese!</string>  
  4.     <string name="app_name">Hello Android - I changed it</string>  
  5. </resources>  
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, We R Chinese!</string>
    <string name="app_name">Hello Android - I changed it</string>
</resources>

 

保存后启动avg模拟器,显示效果:



 可以很明显地看到哪些地方有变化了哦?

 

如此,我们仅仅使用布局就实现了这个效果。

 

 

 2.6 深入一点点

 

 一般的教程可能到上面就结束了,但我们是富于创新地chinese,所以即使是初学,也要搞点花头精……

 

那么我们再来修改下吧,先在main.xml中给TextView加个id上去,这样以后我们就可以认识它了。

Xml代码 复制代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     >  
  7. <TextView  android:id="@+id/tv"  
  8.     android:layout_width="fill_parent"    
  9.     android:layout_height="wrap_content"    
  10.     android:text="@string/hello"  
  11.     />  
  12. </LinearLayout>  
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  android:id="@+id/tv"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
</LinearLayout>

 

然后我们再修改java文件的onCreate方法

Java代码 复制代码
  1. @Override  
  2. public void onCreate(Bundle savedInstanceState) {   
  3.     super.onCreate(savedInstanceState);   
  4.     setContentView(R.layout.main);   
  5.     TextView tv = (TextView) findViewById(R.id.tv);   
  6.     tv.setText("Now I Change It!");   
  7. }  
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        TextView tv = (TextView) findViewById(R.id.tv);
        tv.setText("Now I Change It!");
    }

 

保存后,再启动avg看看效果(注意,我可没改String里面的东西哟):



 

 呵呵,简单且有些无聊……

今天笔记就做到这吧,其实我还在这个基础上有写了很多好玩的逻辑,大家自己发挥想象力创造里咯。

 

 

好像谁说过要激发强大的民族创造力,我来激发一下……哈哈

 

 

 

 


 

工程创建完毕后,我们看一下创建好的结构目录:
 

 

这里,src目录下面就是我们开发主要要用的源码。gen目录下的R.java大家如果没有必要不要去修改它,因为它是工程所有资源文件的一个索引,系统会自动帮我们生成,以后有什么改变,系统会自动修改这个文件哦。好奇的朋友们就打开看看,都是些内部静态类和静态的int,所以不去管它,至少现阶段我是不会去理会它的。

然后是res目录,这里面就是所有的资源文件了,drawable--看到下面的图片了吧,知道放什么的了哦?layout--从字面上来看就知道是放布局文件的,里面是一个xml文件,那么很明显,android应用程序是可以使用xml布局的。values--顾名思义,放值的,放什么值呢,下面再解释。

 

 

  • 大小: 73.1 KB
  • 大小: 23.1 KB
  • 大小: 102.9 KB
  • 大小: 9.2 KB
  • 大小: 10.1 KB
  • 大小: 5.1 KB
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值