当前位置: 代码迷 >> Android >> android学习(一)
  详细解决方案

android学习(一)

热度:56   发布时间:2016-05-01 13:50:26.0
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还是有好处的。

1 楼 yf7631497 2011-06-28  
   
LZ 文笔不错
2 楼 cxshun 2011-06-28  
yf7631497 写道
   
LZ 文笔不错

哈哈,见笑了。
  相关解决方案