`
cxshun
  • 浏览: 720828 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

android学习(1)

阅读更多

作为一个搞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还是有好处的。

  • 大小: 78.7 KB
  • 大小: 70.4 KB
1
2
分享到:
评论
4 楼 cxshun 2013-05-27  
小烈2011 写道
本来不打算涉足android的,不过最近免不了要搞了,这就JAVA程序员的命运啊

其实工作要用到,就学学罗,当见识多一些技术,对自己的成长也是有好处的。
3 楼 小烈2011 2013-05-27  
本来不打算涉足android的,不过最近免不了要搞了,这就JAVA程序员的命运啊
2 楼 cxshun 2011-06-28  
yf7631497 写道
   
LZ 文笔不错

哈哈,见笑了。
1 楼 yf7631497 2011-06-28  
   
LZ 文笔不错

相关推荐

Global site tag (gtag.js) - Google Analytics