在手机上调试程序真的很方便。
熟悉了下eclipse,添加了几个窗体控件。
还不知道怎么banding事件和数据。15寸的屏幕太小了。各种工具窗口显示完后,留下form的面积很小了。
教程上是直接编辑xml文件来修改layout,带有智能提示,不过写起来还不是很方便。也可以在ide里,修改layout,在outline窗口里。
添加activity,activity应该就是事件的概念,不知道intent是什么概念。通过可视化的方法添加activity,要从new里面选。
百度了下
Activity是android中独有的概念,它是android系统的最小调度单位,从这个方面讲有点像WIN32的线程,UNIX/LINUX的进程。一个android进程可以有多个Activity,但Activity之间交换数据需要使用Intent,并不能直接共享数据。
Intent是android的进程之间、Activity之间、线程之间交换数据的载体,类似与WIN32的消息(进程内、进程间消息)。
不过,我更喜欢官网里的这个说法an activity (a single screen) ,类似一个activity就是一个form,窗体。
启动一个activity要通过intent。类似与activity只是一个表现层,而intent是要给逻辑层。在c#,delphi中,activity和intent合在一起成为form。
实际上intent也是放在android.content包里的。
来看下例子里的这段代码,启动另一个activity的。
Intent intent = new Intent(this,MainActivity2.class);
EditText edt=(EditText)findViewById(R.id.editText1);
String message=edt.getText().toString();
intent.putExtra(EXTRA_MESSAGE,message);
startActivity(intent);
这里的R是资源文件类。可以访问程序里用到的所有资源。R虽然会给出程序的所有资源,但如果访问其他activity里的资源,会出现运行时异常。
貌似不能直接访问资源的属性,必须通过方法来做。如这里的getText().toString()
这个还是很符合软件工程规范的。
下面的intent.putExtra也是基于上面的理念。如果在c#里就直接赋值了。
startActivity在c#里,用form.show()。当然也是java这个更合理念。
putExtra就是传递消息,第一个参数是消息名,第二个参数是消息值。
例子中预定义了
public final static String EXTRA_MESSAGE="com.example.hellworld.message";
事实上,这里不需要预定义消息名,当然这样更规范。
final 可以简单的理解为const。
启动调试,找不到设备了。。。找了半天,原来数据线没插好。
到这里,基本和c#是一样简单的。