六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 44|回复: 0

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

[复制链接]

升级  42%

31

主题

31

主题

31

主题

秀才

Rank: 2

积分
113
 楼主| 发表于 2013-1-26 12:42:44 | 显示全部楼层 |阅读模式
  这个例子在java me主要是演示form的使用,在android中,我把他变成了在代码中创建view的联系,下面给出效果图和代码:




整个软件就一个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
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表