Heim >Java >javaLernprogramm >Android-Lernserie 1 verwendet Schaltflächen zur Anzeige der Zeit

Android-Lernserie 1 verwendet Schaltflächen zur Anzeige der Zeit

高洛峰
高洛峰Original
2017-01-07 15:40:411449Durchsuche

Wir erstellen zunächst ein neues Projekt mit AndroidStudio, wählen eine leere Vorlage aus, ziehen dann zwei Schaltflächen hinein und benennen ihre IDs als btDate (Anzeigedatum) und btTime (Anzeigezeit). Sein Vorlagen-XML-Code ist sehr einfach

<?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>

Eine standardmäßige Android-Anwendungsfensterklasse muss die Klasse android.app.Activity erben und mindestens die onCreate-Methode implementieren, um das Fenster zu initialisieren. Als nächstes implementieren Sie die Methode

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;
}
}
}
}

Hinweis:

1. AlertDialog kann zum Anzeigen des Dialogfelds

2 verwendet werden muss in der Layoutdatei enthalten sein. Geben Sie das Android:id-Attribut des Steuerelementetiketts an. Das ID-Attribut jedes Steuerelements darf nicht identisch sein.

3 Jede Ressourcendatei im Res-Verzeichnis (Ressourcenverzeichnis) generiert eine int in der R-Klasse im Gen-Verzeichnis. Eine Variable vom Typ, die zur Identifizierung der aktuellen Ressourcendatei verwendet wird. Daher kann in der onCreate-Methode über R.layout.activity_main auf die Dateiactivity_main.xml verwiesen werden. Dies bedeutet, dass in der Layout-Unterklasse der R-Klasse eine statische Variable vom Typ int generiert wurde

4. Wenn Sie ein Click-Event verwenden, müssen Sie die OnClickListener-Schnittstelle implementieren. Die onClick-Methode dieser Schnittstelle ist die Click-Event-Callback-Methode.

Jede Fensterklasse in einer Android-Anwendung muss definiert werden in der Datei AndroidManifest.xml, andernfalls kann es nicht verwendet werden. Beim Definieren der MainActivity-Klasse verwendet das android:label-Attribut des d3ae5c80fcb2a9903e7ea24877b1c6e7-Labels eine Zeichenfolgenressource. Der Attributwert andrdoid:label, der zum Definieren der mit der Android-Anwendung verbundenen Bezeichnung 24fbed143a7d937464d286af420d7c51 verwendet wird, verwendet auch die Zeichenfolgenressource

Der AndroidManifest.xml-Code lautet wie folgt

<?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>

was kann finden Sie auch unter Ändern des Werts von android:label in string.xml. Der Inhalt von string.xml lautet wie folgt:

<resources>
<string name="app_name">显示日期时间</string>
<string name="title_activity_main">显示日期时间</string>
</resources>

An dieser Stelle , der Codeteil ist vollständig geschrieben.

Der mit AndroidStudio gelieferte Emulator sagt, dass Sie die virtuelle Hyper-v-Maschine im Windows-System ausschalten müssen und auch den HMAX-Intel-Beschleuniger nicht ausführen können, selbst wenn er installiert ist Selbst wenn es inländische Emulatoren installiert, ist QT glücklicherweise sehr leistungsfähig. In Zukunft kann VS auch VC++ für die Entwicklung von Android verwenden wird wirklich immer mächtiger. Wir freuen uns auf weitere Durchbrüche! ! !


Weitere Android-Lernserie 1 mit Schaltflächen zur Anzeige zeitbezogener Artikel finden Sie auf der chinesischen PHP-Website!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn