Android,我的第一次接触!
坚持抗战10小时,终于可以看到Android的应用了!
周末休息的时候看看新闻,看到很多人在说google,诺基亚,微软在智能手机上的“战争”,于是好奇Android,看看基于它的开发是怎么做的。从没接触过java ,从没见过android,连它的IDE都不知道是用什么,更没见过Android手机!从-1开始吧,连从0开始的勇气都没有!这种摸索是很痛苦的,还好,现在世道就是好,因为有搜索!
一、开发环境:
1、 JDK
最新版本jdk-6u17-windows-i586.exe
下载http://java.sun.com/javase/downloads/index.jsp
2、 开发IDE (eclipse)
最新版本eclipse-jee-galileo-SR1-win32.zip
下载地址http://www.eclipse.org/downloads/
3、 Adroid SDK
最新版本android-sdk_r04-windows.zip
下载地址http://developer.android.com/intl/zh-CN/sdk/index.html
注意:下载部署完后需要配置环境变量。网上很多,就不再说了。最后还要在线安装ADT。
运行效果图:
最近一直在WinCE下做,界面有点呆,乍一看上去,却是新颖!
摸索了一下Android的开发,其实跟windows mobile的开发差不多,UI使用xml,与WPF/Silverligh的xaml差不多。代码我感觉与flex的编写差不多,有点actionscrip的味道。但是有一些可能是习惯不一样,可能是因为java 的原因,比如在Windows Mobile下给文本框赋值很简单:
TextBox.Text=”中国”;
但是在Android下,就有点麻烦:
EditText editText = (EditText) findViewById(R.id.EditText01);
editText.setText("中国");
三、创建项目
做一个简单的应用,生成一个列表用ListView 显示,可指定生成数据条数,也可默认,完成后,用TextView给出提示,这里用到知识点:
A、 文本显示,给TextView的文本赋值;
B、 文本框的使用,EditText的取值与赋值;
C、 多选框的使用,CheckBox判断是否选中;
D、 列表控件的使用,ListView数据源的赋值
1、窗体元素,可以看出是标准的xml:
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:id="@+id/txtview"
9 android:layout_width="fill_parent"
10 android:layout_height="wrap_content"
11 android:text="Hello,Android!"
12 android:textSize="20px" android:textStyle="bold"/>
13 <CheckBox android:id="@+id/CheckBox01"
14 android:layout_width="fill_parent"
15 android:layout_height="wrap_content"
16 android:text="@string/CheckBox01"
17 android:checked="true"
18 />
19 <EditText android:text="100"
20 android:maxLines="1"
21 android:autoText="true"
22 android:id="@+id/EditText01"
23 android:layout_width="200dip"
24 android:layout_height="wrap_content"
25 />
26 <Button android:id="@+id/Button01"
27 android:textSize="20sp"
28 android:layout_width="200dip"
29 android:layout_height="wrap_content"
30 android:text="@string/button_ok"/>
31
32 <ListView android:id="@+id/ListView01"
33 android:layout_width="wrap_content"
34 android:layout_height="wrap_content"/>
35 </LinearLayout>
2、java代码:
2
3 import android.app.Activity;
4 import android.os.Bundle;
5 import android.view.View;
6 import android.view.View.OnClickListener;
7 import android.widget.*;
8
9 publicclass testactivity extends Activity implements OnClickListener {
10 /** Called when the activity is first created. */
11 @Override
12 publicvoid onCreate(Bundle savedInstanceState) {
13 super.onCreate(savedInstanceState);
14 setContentView(R.layout.main);
15 Button btn = (Button)findViewById(R.id.Button01);
16 btn.setOnClickListener(this);
17 }
18
19 publicvoid onClick(View aview)
20 {
21 //生成数据条数 100
22 int k=100;
23 EditText editText = (EditText) findViewById(R.id.EditText01);
24 CheckBox checkBox = (CheckBox) findViewById(R.id.CheckBox01);
25
26 //ListView
27 ListView listView = (ListView) findViewById(R.id.ListView01);
28 ArrayAdapter<String> arrada =new ArrayAdapter<String>(
29 this,android.R.layout.simple_list_item_1);
30
31 if(!checkBox.isChecked() && editText.getText().toString().trim().length()>0){
32 //多选框未选中时,根据文本框中输入的数值生成数据列表
33 k=Integer.parseInt(editText.getText().toString().trim());
34 }
35 //构造数据源
36 for(int i=0;i<k;i++){
37 arrada.add(String.valueOf(i)+" Android与WindowsMobile");
38 }
39 //设置listview数据源
40 listView.setAdapter(arrada);
41
42 //提示消息
43 TextView textview=(TextView)findViewById(R.id.txtview);
44 textview.setText(String.valueOf("生成数据成功!共:"+listView.getCount()+" 条数据!"));
45 }
46 }
总结:
示例很简单,以前没接触过java,语法看上去与C#差不多(可能这就是人家说的“C#是抄java的”)。对控件的操作感觉与Windwos下不太一样,刚开始还真有点不习惯。比如它的赋值是以set开头的方法setText()等等,取值是以 get开头的方法getText()等等。
主要郁闷:
1、 开始编译运行的时候,死活都出不来,偶尔也能运行,但更多的时候是运行不了,并且生成了一个main.out.xml文件,再展现一次错误:
[2009-12-27 16:48:42 - test]Error in an XML file: aborting build.
[2009-12-27 16:48:42 - test]res\layout\main.xml:0: error: Resource entry main is already defined.
[2009-12-27 16:48:42 - test]res\layout\main.out.xml:0: Originally defined here.
[2009-12-27 16:48:42 - test]E:\Test\Android\test\res\layout\main.out.xml:1: error: Error parsing XML: no element found
快疯了也找不到原因!这个问题困扰了我大概3个小时,也不知道怎么办!!最后在国外的一个E文中找到办法:生成前一定要在项目树中让src目录获取焦点,不知道为什么要这样???
2、最痛苦的是看不懂e文啊,手边放一个“翻译官”也不行,看下去也是囫囵吞枣!轱轱辘辘!无比的痛苦!莫大的悲哀!