day_02 Button
- 一个小控件Button的用法:
先新建一个空的工程,工程刚进去的时候有一个活动MainActivity,一个布局activity_main,然后它也已经自己注册过了。

(1)配置文件这里面已经注册过了
<activity>代表活动,要包含在<application>内部,<activity android:name=".MainActivity">这个表示注册的活动是MainActivity,其实应该用包名.类名表示,这里可以省略。
<intent-filter>意图过滤器,它指定了启动应用程序的Intent对象的动作action和类型category。
<action android:name="android.intent.action.MAIN"/>表示这个活动是主入口,打开应用程序就会先进入这个活动里面。而且这个只能设置一个,如果有多个,哪个在前执行哪个。
类似的还有:
- ACTION_VIEW: (android.intent.action.显示指定数据。
- ACTION_EDIT: (android.intent.action.EDIT) 编辑指定数据。
- ACTION_DIAL: (android.intent.action.DIAL) 显示拨号面板。
- ACTION_CALL: (android.intent.action.CALL) 直接呼叫Data中所带的号码。
- ACTION_ANSWER: (android.intent.action.ANSWER) 接听来电。
- ACTION_SEND: (android.intent.action.SEND) 向其他人发送数据(例如:彩信/email)。
- ACTION_SENDTO: (android.intent.action.SENDTO) 向其他人发送短信。
- ACTION_SEARCH: (android.intent.action.SEARCH) 执行搜索。
- ACTION_GET_CONTENT: (android.intent.action.GET_CONTENT) 让用户选择数据,并返回所选数据。
- ........
<category android:name="android.intent.category.LAUNCHER"/>设置该组件为在当前应用程序启动器中优先级最高的Activity,通常与入口ACTION_MAIN配合使用。
类似的还有:
- CATEGORY_DEFAULT: Android系统中默认的执行方式,按照普通Activity的执行方式执行。
- CATEGORY_HOME:设置该Activity随系统启动而运行
- CATEGORY_PREFERENCE:该Activity是参数面板
- CATEGORY_BROWSABLE:指定该Activity能被浏览器安全调用
- ........

(2)这是一开始的布局,<RelativeLayout>是相对布局,这里呢我们删除掉这些,用线性布局来讲解。

(3)<LinearLayout>是线性布局,3、4两行,分别代表宽和高,引号里面呢有两种选择:match_parent代表完全填充,wrap_content代表随着里面的内容定这个布局的大小。这里我们选择完全填充。
第6行,orientation里的选择有两种:vertical代表垂直排列控件,horizontal代表水平排列,这里选择竖直排列,因为这样比较好看点。
在<LinearLayout>里面的TextView和Button分别代表:输出的字,按钮。
TextView里面包含的是宽和高,还有text,输出的字。
Button里面包含的也是一样的。

(4)在Button设置一个id,它的作用很重要,在以后想调用这个按钮的时候就用到这个,“”里面@+id代表给它赋了一个id,/后面的才是它的名字,这里自己随便取。

(5)切换到MainActivity里面来,声明一个按钮Button,用findViewById找到想要操作的按钮的id,这不,id的作用体现出来了,如果没有id,那么将无法操作这个按钮,别的控件也一样,包括布局。
这里需要强制转换一下,把它转换成(Button),新的版本可能不需要转换。
然后跟JAVA上的差不多了,用声明的btn获取点击监听事件。
然后在onClick这个函数里面开始写东西,写你想执行的动作。

(6)下面先介绍一下一个新的东西:Toast.makeText(这里填写当前的活动,这里填写想要输出的话,这里填写显示的时间长短).show();
这算一个小小的提醒框,这里添加是为了证明按钮 起作用了

(7)运行一下
那个文本和按钮呈现出了竖直排列。

(8)当当当,点击按钮后触发了监听事件,弹出了提醒框。


浙公网安备 33010602011771号