安桌开发 学习备忘2

来源:互联网 发布:荣威rx5网络连接异常 编辑:程序博客网 时间:2024/05/04 01:31

在手机上调试程序真的很方便。

熟悉了下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#是一样简单的。




0 0
原创粉丝点击