码迷,mamicode.com
首页 > 移动开发 > 详细

(Android学习系列)一,用按钮实现时间的显示

时间:2016-04-30 15:33:42      阅读:362      评论:0      收藏:0      [点我收藏+]

标签:

我们先用AndroidStudio新建一个项目,选择空白模板,然后像其中拖入两个Button,将他们的id分别命名为btDate(显示日期),btTime(显示时间),他的模板XML代码很简单

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:tools="http://schemas.android.com/tools"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     android:paddingBottom="@dimen/activity_vertical_margin"
 7     android:paddingLeft="@dimen/activity_horizontal_margin"
 8     android:paddingRight="@dimen/activity_horizontal_margin"
 9     android:paddingTop="@dimen/activity_vertical_margin"
10     tools:context="com.neil.ad01.MainActivity">
11 
12 
13     <Button
14         android:layout_width="wrap_content"
15         android:layout_height="wrap_content"
16         android:text="显示当前日期"
17         android:id="@+id/btDate"
18         android:layout_alignParentLeft="true"
19         android:layout_alignParentStart="true"
20         android:layout_alignParentTop="true" />
21 
22     <Button
23         android:layout_width="wrap_content"
24         android:layout_height="wrap_content"
25         android:text="显示当前时间"
26         android:id="@+id/btTime"
27         android:layout_below="@+id/btDate"
28         android:layout_alignParentLeft="true"
29         android:layout_alignParentStart="true" />
30 </RelativeLayout>

如图所示

技术分享

一个标准的Android应用程序窗口类需要继承android.app.Activity类,至少实现onCreate方法来初始化这个窗口。接下来实现方法

 1 package com.neil.ad01;
 2 
 3 import android.app.Activity;
 4 import android.app.AlertDialog;
 5 import android.content.Intent;
 6 import android.os.Bundle;
 7 import android.view.View;
 8 import android.widget.Button;
 9 
10 import java.text.SimpleDateFormat;
11 import java.util.Date;
12 
13 public class MainActivity extends Activity implements View.OnClickListener
14 {
15 
16     private void showDialog(String title,String msg)
17     {
18         AlertDialog.Builder builder=new AlertDialog.Builder(this);
19         //设置对话框的图标
20         builder.setIcon(android.R.drawable.ic_dialog_info);
21         //设置对话框的标题
22         builder.setTitle(title);
23         //设置对话框的信息
24         builder.setMessage(msg);
25         //设置对话框的按钮
26         builder.setPositiveButton("确定",null);
27         //显示对话框
28         builder.create().show();
29 
30         Intent intent;
31     }
32     //初始化窗口
33     @Override
34     protected void onCreate(Bundle savedInstanceState) {
35         super.onCreate(savedInstanceState);
36         //装载了View(刚才编写的XML文件)
37         setContentView(R.layout.activity_main);
38         //获得两个按钮对象的实例
39         Button btDate=(Button)findViewById(R.id.btDate);
40         Button btTime=(Button)findViewById(R.id.btTime);
41         //为两个按钮添加单击事件的监听(实现了OnClickListener接口的对象)
42         btDate.setOnClickListener(this);
43         btTime.setOnClickListener(this);
44     }
45 
46     //两个按钮共用一个单击事件,通过按钮的id区分单击了哪个按钮
47     @Override
48     public void onClick(View v) {
49         switch (v.getId())
50         {
51             case R.id.btDate: {
52                 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
53                 //显示当前日期
54                 showDialog("当前日期", sdf.format(new Date()));
55                 break;
56             }
57             case R.id.btTime: {
58                 SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
59                 //显示当前日期
60                 showDialog("当前时间", sdf.format(new Date()));
61                 break;
62             }
63         }
64     }
65 }

注: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,如图

技术分享

这个模拟器是QT for Android中生成的,AndroidStudio自带的模拟器说要关闭windows系统中的Hyper-v虚拟机,还要HMAX intel加速器,装Genymotion也运行不了,装国内模拟器干脆AndroidStudio就识别不出来的,真是晕+_+,还好QT给力,以后还可以用QT基于C++开发android,VS现在也实现了VC++开发Android,现在各种平台之间的交互真的是越来越给力了。期待更大的突破!!!

 

这个android的教程也是针对新手的,因为本人也是新手,哈哈

(Android学习系列)一,用按钮实现时间的显示

标签:

原文地址:http://www.cnblogs.com/jnzdn/p/5448756.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!