Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android學習系列一用按鈕實現顯示時間

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

編輯:關於Android編程

我們先用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類時<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,現在各種平台之間的交互真的是越來越給力了。期待更大的突破!!!

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved