首頁  >  文章  >  Java  >  Android學習系列一用按鈕實現顯示時間

Android學習系列一用按鈕實現顯示時間

高洛峰
高洛峰原創
2017-01-07 15:40:411423瀏覽

我們先用AndroidStudio新建一個項目,選擇空白模板,然後像其中拖入兩個Button,將他們的id分別命名為btDate(顯示日期),btTime(顯示時間),他的模板XML代碼很簡單

<?xml version="." encoding="utf-"?>
<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.ad.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.ad;
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類別時標籤的android:label屬性使用了字串資源。用於定義Android應用程式相關資訊的標籤的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>

   

至此,程式碼部分已全部寫完。

AndroidStudio自帶的模擬器說要關閉windows系統中的Hyper-v虛擬機,還要HMAX intel加速器,裝Genymotion也運行不了,裝國內模擬器乾脆AndroidStudio就識別不出來的,真是暈+_+ ,還好QT給力,以後還可以用QT基於C++開發android,VS現在也實現了VC++開發Android,現在各種平台之間的交互真的是越來越給力了。期待更大的突破! ! !


更多Android學習系列一用按鈕實現顯示時間相關文章請關注PHP中文網!


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn