Maison  >  Article  >  Java  >  La série d'apprentissage Android 1 utilise des boutons pour afficher l'heure

La série d'apprentissage Android 1 utilise des boutons pour afficher l'heure

高洛峰
高洛峰original
2017-01-07 15:40:411423parcourir

Nous créons d'abord un nouveau projet avec AndroidStudio, sélectionnons un modèle vierge, puis faisons glisser deux boutons et nommons leurs identifiants btDate (date d'affichage) et btTime (heure d'affichage) Son code XML de modèle est très simple

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

Une classe de fenêtre d'application Android standard doit hériter de la classe android.app.Activity et au moins implémenter la méthode onCreate pour initialiser la fenêtre. Ensuite, implémentez la méthode

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

Remarque :

1. AlertDialog peut être utilisé pour afficher la boîte de dialogue

2. doit être dans le fichier de mise en page Spécifiez l'attribut android:id de l'étiquette de contrôle dans , et l'attribut id de chaque contrôle ne peut pas être le même

3 Chaque fichier de ressources dans le répertoire res (ressource) générera un. int dans la classe R du répertoire gen. Une variable de type utilisée pour identifier le fichier de ressources actuel. Par conséquent, dans la méthode onCreate, le fichier Activity_main.xml peut être référencé via R.layout.activity_main. Cela signifie qu'une variable de type int statique appelée Activity_main a été générée dans la sous-classe layout de la classe R.

4. Si vous utilisez un événement click, vous devez implémenter l'interface OnClickListener. La méthode onClick de cette interface est la méthode de rappel d'événement click

Toute classe de fenêtre dans une application Android doit être définie. dans le fichier AndroidManifest.xml, sinon il ne pourra pas être utilisé. Lors de la définition de la classe MainActivity, l'attribut android:label de l'étiquette d3ae5c80fcb2a9903e7ea24877b1c6e7 La valeur de l'attribut andrdoid:label de l'étiquette 24fbed143a7d937464d286af420d7c51 utilisée pour définir les informations relatives à l'application Android utilise également la ressource de chaîne

Le code AndroidManifest.xml est le suivant

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

qui peut se trouve également dans Modifier la valeur de android:label dans string.xml Le contenu de string.xml est le suivant :

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

À ce stade. , la partie code est entièrement écrite.

L'émulateur fourni avec Android Studio indique que vous devez désactiver la machine virtuelle Hyper-v dans le système Windows et que l'accélérateur Intel HMAX ne peut pas fonctionner même s'il est installé. Je ne peux pas le reconnaître même s'il installe des émulateurs nationaux. C'est vraiment Halo_, heureusement, QT est puissant, vous pourrez utiliser QT pour développer Android basé sur C à l'avenir, VS implémente désormais également VC pour développer Android, et maintenant l'interaction entre différentes plates-formes est devenant vraiment de plus en plus puissant. Dans l’attente de plus grandes percées ! ! !


Pour plus de séries d'apprentissage Android-1 utilisant des boutons pour afficher des articles liés à l'heure, veuillez faire attention au site Web PHP chinois !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn