这几天,基本上每天都有写一点点,现在整合在一起。
一、安卓模拟器和项目的创建
首先,当然是打开eclipse;
模拟器:
- 点击图标栏中下载图标右边的形似手机的图标
- 在Device Definitions中选择device 比如3.2QVGA,点击右边Create AVD
- 其中的AVD Name是可以改变的,因为之前已经选择好了device,接下来的target等都可以不用再做改动
- 点击OK模拟器就创建完成了
- 回到Android Virtual Devices 选择模拟器,然后点击右边的Start就可以让模拟器运行了
Android项目:
- 在File中创建一个新的Android Application Project
- Project Name 可以跟Application Name 不相同,Package Name最好是改变原本默认的example
- 在Configure Launcher Icon中可以改变Image、Clipart、Text,目前来说并不需要改变其他的默认选项,最后创建完成
- 以Android Application方式run这个项目
二、实现电话拨号器
- 还是需要先开启模拟器,因为模拟器启动的时间有点长,早点启动会比较好;
- 创建一个Android Application,在创建的时候有几点建议,一是最好用英文,首字母大写,因为用中文经常报“AndroidManifest.xml file missing!”这样的错;
- 在*activity main.xml中左侧有很多项,而我们做电话模拟器需要的是一个输入电话号码的文本框,和一个按钮,在Text Fields中,我们可以选择文本框的类型,选中后拖拽到右边的手机画面上。在Form Widgets中,可以选择Button。
- 在activity main.xml中,我们可以看到这个界面的代码,如果我们想让文本框与手机界面左右对齐的话,我们可以把 <EditText下面的android:layout_width="wrap_content"这一语句中wrap_content变为match_content。如果想要让按钮紧挨文本框下面的话,可以写上 android:layout_below="@+id/editText1"这一语句。(文本框和按钮的id都是可以改变的,改变之后可以使其更直观)
- 用Button button= (Button)findViewById(R.id.button1);得到按钮,再用button.setOnClickListener(new MyListener());给按钮设置一个点击事件
- 用内部类来实现OnClickListener接口,用5中同样的方法得到文本框,并toString方法得到文本框中的内容,new一个Intent类的对象,也就是意图,再给此对象设置动作(intent.setAction(Intent.ACTION_CALL);)最后给对象设置数据(intent.setData(Uri.parse("tel"+phonenumber));)
三、事件机制
- 在得到文本框和得到按钮的时候,多次用到了强制类型转换,可以看到它的重要性。在得到文本框之后,我们需要利用editText.getText().toString();这一语句来得到文本框中的内容。我们在事件机制中,可以利用强制类型转换来得到事件源,再需要给事件源添加监听器,我们就要构造内部类来实现监听器方法。
- 另外,需要提到的是,我们可以利用Toast.makeText(context, text, duration)方法来创建一个Toast提醒窗口,第一个参数是当前的上下文;第二个参数是Toast要显示的文本信息,第三个参数是Toast显示的时,可以祈祷提示的作用。
- 而上次我们也提到过的Intent,可以看成是一个意图,它不仅仅可以设置动作,还可以用来开启另一个界面,还可以用intent.putExtra(name, value)方法来存储数据,需要用到时,用intent.getgetStringExtra(name)的方法来得到。
四、点击事件的四种写法
- 点击事件有4种写法。定义一个内部类来定义点击事件。例如loginbutton.setOnClickListener(new MyListener());再定义一个内部类MyListener类来实现这样一个OnClickListener接口
- 定义一个匿名内部类来定义点击事件。其实这个方法与上一个方法没有太大差别,就是把内部类直接在set中定义,即:loginbutton.setOnClickListener(new OnClickListenerr(){});
- 让activity实现点击事件的借口。loginbutton.setOnClickListener(this);这样的话我们需要在我们的当前类中继承OnClickListener接口,还需要我们在下面实现onClick方法
这个方法使用于我们有很多组件需要添加监听器时,我们就可以省掉给每个组件都来设置实现类的麻烦 - 在布局文件里面绑定一个点击的方法。比如在Button组件下面,加上这么一句android:onClick="dailButtonClick" ,然后我们还需要去实现这样一个dailButtonClick方法
点击事件的方法就是这些,感觉第三个方法确实是相当好用。
在这里,我要提到今天学习的一点想法:
在安卓里面发现Toast.makeText()方法对于调试很有用,可以一定程度上代替System.out.print()的作用,因为它可以在模拟器上直接看到,会更加直观一点,大家在调试的时候不妨也用用这一方法。