这个例子在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