(Android学习系列)一,用按钮实现时间的显示
我们先用AndroidStudio新建一个项目,选择空白模板,然后像其中拖入两个Button,将他们的id分别命名为btDate(显示日期),btTime(显示时间),他的模板XML代码很简单
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.neil.ad01.MainActivity"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="显示当前日期" android:id="@+id/btDate" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_alignParentTop="true" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="显示当前时间" android:id="@+id/btTime" android:layout_below="@+id/btDate" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> </RelativeLayout>
如图所示
一个标准的Android应用程序窗口类需要继承android.app.Activity类,至少实现onCreate方法来初始化这个窗口。接下来实现方法
package com.neil.ad01; import android.app.Activity; import android.app.AlertDialog; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import java.text.SimpleDateFormat; import java.util.Date; public class MainActivity extends Activity implements View.OnClickListener { private void showDialog(String title,String msg) { AlertDialog.Builder builder=new AlertDialog.Builder(this); //设置对话框的图标 builder.setIcon(android.R.drawable.ic_dialog_info); //设置对话框的标题 builder.setTitle(title); //设置对话框的信息 builder.setMessage(msg); //设置对话框的按钮 builder.setPositiveButton("确定",null); //显示对话框 builder.create().show(); Intent intent; } //初始化窗口 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //装载了View(刚才编写的XML文件) setContentView(R.layout.activity_main); //获得两个按钮对象的实例 Button btDate=(Button)findViewById(R.id.btDate); Button btTime=(Button)findViewById(R.id.btTime); //为两个按钮添加单击事件的监听(实现了OnClickListener接口的对象) btDate.setOnClickListener(this); btTime.setOnClickListener(this); } //两个按钮共用一个单击事件,通过按钮的id区分单击了哪个按钮 @Override public void onClick(View v) { switch (v.getId()) { case R.id.btDate: { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //显示当前日期 showDialog("当前日期", sdf.format(new Date())); break; } case R.id.btTime: { SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); //显示当前日期 showDialog("当前时间", sdf.format(new Date())); break; } } } }
注:1,AlertDialog可用于显示对话框
2,如果多个控件共用一个事件方法,必须在布局文件中指定控件标签的android:id属性,并且每个控件的id属性不能相同
3.res(resource)目录中的每一个资源文件都会在gen目录下的R类中生成一个int类型的变量,用于标识当前资源文件。所以在onCreate方法中可以通过R.layout.activity_main引用activity_main.xml文件,这说明已经在R类的layout子类中生成了一个叫activity_main的静态int类型的变量,layout类的代码的代码如下
4,如果使用单击事件,必须实现OnClickListener接口,该接口的onClick方法就是单击事件回调方法
Android应用程序中任何窗口类都必须在AndroidManifest.xml文件中定义,否则无法使用。在定义MainActivity类时<activity>标签的android:label属性使用了字符串资源。用于定义Android应用程序相关信息的<application>标签的andrdoid:label属性值也使用了字符串资源
AndroidManifest.xml代码如下
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.neil.ad01"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity" android:label="@string/title_activity_main"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
其中还可以在string.xml中改变android:label的值,string.xml内容如下
<resources> <string name="app_name">显示日期时间</string> <string name="title_activity_main">显示日期时间</string> </resources>
至此,代码部分全部写完。
然后点击运行按钮,在模拟器中生成app,如图
AndroidStudio自带的模拟器说要关闭windows系统中的Hyper-v虚拟机,还要HMAX intel加速器,装Genymotion也运行不了,装国内模拟器干脆AndroidStudio就识别不出来的,真是晕+_+,还好QT给力,以后还可以用QT基于C++开发android,VS现在也实现了VC++开发Android,现在各种平台之间的交互真的是越来越给力了。期待更大的突破!!!
这个android的教程也是针对新手的,因为本人也是新手,哈哈
(Android学习系列)一,用按钮实现时间的显示的更多相关文章
- Android学习系列(37)--App调试内存泄露之Context篇(下)
接着<Android学习系列(36)--App调试内存泄露之Context篇(上)>继续分析. 5. AsyncTask对象 我N年前去盛大面过一次试,当时面试官极力推荐我使用AsyncT ...
- Android学习系列(23)--App主界面实现
在上篇文章<Android学习系列(22)--App主界面比较>中我们浅略的分析了几个主界面布局,选了一个最大众化的经典布局.今天我们就这个经典布局,用代码具体的实现它. 1.预览图先看下 ...
- Android学习系列(18)--App工程结构搭建
本文算是一篇漫谈,谈一谈关于Android开发中工程初始化的时候如何在初期我们就能搭建一个好的架构. 关于android架构,因为手机的限制,目前我觉得也确实没什么大谈特谈的,但是从开发的 ...
- Android学习系列(7)--App轮询服务器消息
这篇文章是android开发人员的必备知识. 1.轮询服务器 一般的应用,定时通知消息可以采用轮询的方法从服务器拿取消息,当然实时消息通知的话,建议采用推送服务. 其中需要注意轮询的频率 ...
- Android学习系列(15)--App列表之游标ListView(索引ListView)
游标ListView,提供索引标签,使用户能够快速定位列表项. 也可以叫索引ListView,有的人称也为Tweaked ListView,可能更形象些吧. 一看图啥都懂了: 1. ...
- [置顶] Android学习系列-Android中解析xml(7)
Android学习系列-Android中解析xml(7) 一,概述 1,一个是DOM,它是生成一个树,有了树以后你搜索.查找都可以做. 2,另一种是基于流的,就是解析器从头到尾解析一遍xml文件. ...
- [置顶] Android学习系列-把文件保存到SD卡上面(6)
Android学习系列-把文件保存到SD卡上面(5) 一般多媒体文件,大文件需要保存到SD卡中.关键点如下: 1,SD卡保存目录:mnt/sdcard,一般采用Environment.getExter ...
- Android学习系列(17)--App列表之圆角ListView(续)
http://www.cnblogs.com/qianxudetianxia/archive/2011/09/19/2068760.html 本来这篇文章想并到上篇Android学习系列(16)- ...
- Android学习系列(11)--App列表之拖拽ListView(下)
接着上篇Android学习系列(10)--App列表之拖拽ListView(上)我们继续实现ListView的拖拽效果. 7.重写onTouchEvent()方法. 在这个方法中我们主要是处理 ...
- Android学习系列(10)--App列表之拖拽ListView(上)
研究了很久的拖拽ListView的实现,受益良多,特此与尔共飨. 鉴于这部分内容网上的资料少而简陋,而具体的实现过程或许对大家才有帮助,为了详尽而不失真,我们一步一步分析,分成两篇文章. ...
随机推荐
- Android之旅 笔记总结(一)
一.Android入门 1. Android操作系统的体系结构分为4层,由上而下依次是应用程序.应用程序框架.核心类库(包括Android运行时环境)和Linux内核. 2. ...
- URAL 2068 Game of Nuts (博弈)
题意:给定 n 堆石子,每次一个人把它们分成三堆都是奇数的,谁先不能分,谁输. 析:因为每堆都是奇数,那么最后肯定都是要分成1的,那么就把不是1的全加和,然后判断奇偶就OK了. 代码如下: #prag ...
- c++中__declspec用法总结
“__declspec”是Microsoft c++中专用的关键字,它配合着一些属性可以对标准C++进行扩充.这些属性有:align.allocate.deprecated. dllexport.dl ...
- UI:关于RGB与16进制颜色值的转换
IOS基本图形绘制 参考 取色对照表 参照 页面背景改为 #5CACEE 的颜色.有两个方法 方法一: 加两个宏 #define UIColorFromHexWithAlpha(hexValu ...
- Hadoop on Mac with IntelliJ IDEA - 7 解决failed to report status for 600 seconds. Killing!问题
本文讲述作业在Hadoop 1.2.1完成map后ruduce阶段遇到failed to report status for 600 seconds. Killing!问题的解决过程. 环境:Mac ...
- imindmap7_windows_7.0
思维导图工具: imindmap7_windows_7.0 iMindMap7.0 和谐包V1.0 22:27:23
- cocos2d-x如何新建一个模板项目
方法一: $ cd cocos2d-x$ ./setup.py$ source FILE_TO_SAVE_SYSTEM_VARIABLE$ cocos new MyGame -p com.your_c ...
- IOS 7 Study - UIActivityViewController(Presenting Sharing Options)
You want to be able to allow your users to share content inside your apps with theirfriends, through ...
- uoj #118. 【UR #8】赴京赶考 水题
#118. [UR #8]赴京赶考 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://uoj.ac/problem/118 Description ...
- Android APK反编译得到Java源代码和资源文件
在此郑重声明,贴出来的目的不是为了去破解人家的软件,完全是一种学习的态度,不过好像通过这种方式也可以去汉化一些外国软件. 一.反编译Apk得到Java源代码 首先要下载两个工具:dex2jar和JD- ...