这个例子在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; //用于显示测试结果 @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.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); } @Override public boolean onCreateOptionsMenu(Menu menu) { // TODO Auto-generated method stub menu.add(0, COMMAND_DETECTION,0,"检测"); menu.add(0, COMMAND_RESET, 0, "重置"); menu.add(0, COMMAND_EXIT, 0, "退出"); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub if(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("体力:"+"处于高潮期,体力充沛精力旺"); else stringitem1.setText("体力:"+"处于低潮期,体力不足易疲劳"); if( Y2 == 0 || Y2 == 1 || Y2 == 23 || Y2 == 24 || Y2 == 25 ) stringitem2.setText("情绪:"+"处于临界期,容易冲动"); else if( Y2 < 24 ) stringitem2.setText("情绪:"+"处于高潮期,情绪高精神爽"); else stringitem2.setText("情绪:"+"处于低潮期,情绪低心情烦"); if( Y3 == 0 || Y3 == 1 || Y3 == 16 || Y3 == 17 ) stringitem3.setText("智力:"+"处于临界期,易出差错"); else if( Y3 < 17 ) stringitem3.setText("智力:"+"处于高潮期,思维敏捷反应快"); else stringitem3.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