一口三个汉堡 发表于 2013-2-1 09:56:52

实例14---不准+弱智的生物钟

  这个例子在java me主要是演示form的使用,在android中,我把他变成了在代码中创建view的联系,下面给出效果图和代码:

http://dl.iteye.com/upload/attachment/500995/f068ac97-35c9-3fc6-a070-94940489b6ac.png

http://dl.iteye.com/upload/attachment/500997/000a1176-4fe7-36e2-9bca-9bb0947bcf77.png
整个软件就一个activity

package com.wjh.demon_14;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.widget.DatePicker;import android.widget.LinearLayout;import android.widget.TextView;import java.util.Calendar;public class Demon_14 extends Activity{public static final int COMMAND_DETECTION = 1;public static final int COMMAND_RESET = 2;public static final int COMMAND_EXIT = 3;private DatePicker datefield;               //用于输入出生日期private TextView stringitem;private TextView stringitem1;            //用于显示测试结果private TextView stringitem2;            //用于显示测试结果private TextView stringitem3;            //用于显示测试结果@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);//创建对话框及组件,并将组件添加到对话框this.setTitle("生物钟");datefield = new DatePicker(this);stringitem = new TextView(this);stringitem1 = new TextView(this);stringitem2 = new TextView(this);stringitem3 = new TextView(this);stringitem.setText("输入出生日期");stringitem1.setText("体力:无检测结果");stringitem2.setText("情绪:无检测结果");stringitem3.setText("智力:无检测结果");LinearLayout ll = new LinearLayout(this);ll.addView(stringitem);ll.addView(datefield);ll.addView(stringitem1);ll.addView(stringitem2);ll.addView(stringitem3);ll.setOrientation(LinearLayout.VERTICAL);setContentView(ll);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// TODO Auto-generated method stubmenu.add(0, COMMAND_DETECTION,0,"检测");menu.add(0, COMMAND_RESET, 0, "重置");menu.add(0, COMMAND_EXIT, 0, "退出");return super.onCreateOptionsMenu(menu);}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// TODO Auto-generated method stubif(item.getItemId() == COMMAND_DETECTION){//当检测按钮被按下后//计算总天数Calendar c = Calendar.getInstance();c.set(datefield.getYear(), datefield.getMonth(), datefield.getDayOfMonth());long temp = System.currentTimeMillis() - c.getTimeInMillis();long X = temp / ( 24 * 60 * 60 * 1000 );//计算节律long Y1 = X % 23;long Y2 = X % 28;long Y3 = X % 33;//计算节律阶段,并反馈信息if( Y1 == 0 || Y1 == 1 || Y1 == 11 || Y1 == 12 )stringitem1.setText("体力:"+"处于临界期,易患疾病");else if( Y1 < 12 )stringitem1.setText("体力:"+"处于高潮期,体力充沛精力旺");elsestringitem1.setText("体力:"+"处于低潮期,体力不足易疲劳");if( Y2 == 0 || Y2 == 1 || Y2 == 23 || Y2 == 24 || Y2 == 25 )stringitem2.setText("情绪:"+"处于临界期,容易冲动");else if( Y2 < 24 )stringitem2.setText("情绪:"+"处于高潮期,情绪高精神爽");elsestringitem2.setText("情绪:"+"处于低潮期,情绪低心情烦");if( Y3 == 0 || Y3 == 1 || Y3 == 16 || Y3 == 17 )stringitem3.setText("智力:"+"处于临界期,易出差错");else if( Y3 < 17 )stringitem3.setText("智力:"+"处于高潮期,思维敏捷反应快");elsestringitem3.setText("智力:"+"处于低潮期,反应迟钝记忆差");}if(item.getItemId() == COMMAND_EXIT){//当退出按钮按下后,退出程序this.finish();}if(item.getItemId() == COMMAND_RESET){//当重置按钮按下后,重置显示信息stringitem1.setText("无检测结果");stringitem2.setText("无检测结果");stringitem3.setText("无检测结果");}return super.onOptionsItemSelected(item);}} apk文件(将后缀改为apk):Demon_14.zip
源代码:Demon_14.rar
页: [1]
查看完整版本: 实例14---不准+弱智的生物钟