作为一个搞JAVA开发的,怎能不真趟趟android开发这趟浑水呢。哈哈,我今天也趁机来搞搞。
初学而已,高手不要见笑了。
先来看看跟着书本做的例子,一个打电话的例子。
建项目的那些东西就不说啦,相信大家都会。我们直接入正题。
1)说是打电话啦,肯定要有个地方和个按钮给别人输号码和拨打:
<resources> <string name="hello">Hello World, Phone!</string> <string name="app_name">Phone</string> <string name="mobile">请输入手机号</string> <string name="button">拨打此手机号</string> </resources>
不要跟我说不知道这段东西加哪里啊,真不知道?告诉你吧,加到strings.xml,这一堆是用于页面显示相关的字符串,先不管它怎么显示的,这个我们以后如果有机会深入再慢慢研究。
2)有个显示的字符串,接下来就是要框啦,怎么,不要框,那去哪输去:
<EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/mobile" android:id="@+id/phoneno" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button" android:id="@+id/button" />
这段东西指定了一个输入框和一个button,并且它们都有各自的ID,这个ID实际上跟我们在HTML上的ID类似,也可以理解成标志。
上面这段要显示的当然就是放在main.xml啦,在layout文件夹里面的,它是控制界面的配置文件。
3)接下来页面我们搞完了,是因为开始写逻辑啦,由于android在调用Activity之前会调用onCreate方法,因为我们把逻辑写在这里是非常合适的。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button = (Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
EditText phonenoText = (EditText)findViewById(R.id.phoneno);
String phoneno = phonenoText.getText().toString();
if (phoneno != null && !"".equals(phoneno.trim())) {
Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+phoneno));
startActivity(intent);
}
}
});
}
这段代码比较简单,难的只可能是Intent这些的概念,这个暂时先理解成动作,就相当于swing中的action,而后面的setActivity是把这个action设到activity中,让它可以被调用。
4)你以为这样搞定了,不要激动,还没呢,android是基于linux,权限这方面有时会比较郁闷的。我们要让它可以打出电话,我们需要设置权限:
<uses-permission android:name="android.permission.CALL_PHONE"/>
我们在AndroidManifest.xml中添加上面这句,是添加在manifest元素里面作为子标签。
接下来就可以运行啦。运行前先说明一下,我的运行环境是android2.3.3,要跟上潮流嘛。
下面我们看看效果:
我启动了两个avd,一个端口是5556,另外一个是5554,现在通过5554打给5556,直接拨端口号就OK了。
在5556上接到电话:
很好,成功了,没什么问题。
也许有人会说,搞个这么小的程序这么麻烦啊,还一大堆配置文件。是有点麻烦,但有时比起SSH那一大堆的配置项,这还是小意思。而且android的设计思路中有运用到很重要的一种设计模式——MVC模式,正确来说,应该不算是模式,它已经上升到架构了,但这里还是叫模式吧。
在android中,MVC分别是什么呢?也许这个比较难分清,因为看起来是一个整体,不可分割,但仔细看看,却发现每个部分都组织地很好,修改一个并不影响另外一个。
android中的MVC,我们来看一下:
V——view:刚才我们写了配置文件,搞定了视图,当然配置文件也就是view啦。
M——model:刚才我们有用到model吗?似乎没有,但仔细看看,那个由android自动生成的东西是什么呢?R.java,它组织我们的一系列资源,这个就是model。
C——control:这个控制就很明显了,是Activity。它负责把model和view结合起来。
这下思路清晰了吧,原来android也跟WEB差不多啊。其实思想是差不多的,但真正深入进去,android的架构是很优秀的,慢慢深入,对深入学习JAVA还是有好处的。