网上看了很多获取时间的例子,总是觉得没有达到自己的要求。终于在我偶然的一次查找中,发现了可以向钉钉一样的时间机制,正好是我们需要的,特再次记录下来。
小伙伴们看见下面长长的代码不要放弃,我原意是提炼出重点,但是网上有很多这样的,对于新手来说无法下手,就像我这样的。所以我贴了整个activity的,方便小伙们理解,当然。所有关于时间的代码我已经全部备注了,拿来即用。
import android.app.Activity;
import android.content.ContentValues;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.text.SimpleDateFormat;
import java.util.Date;
public class InsertActivity extends Activity {
private MyDatabaseOpenHelper dbOpenHelper;
//******************下面是时间
private TextView tv_time;
private static final int msgKey1 = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_insert);
//***************************下面是时间的代码 两行*****************************************************
tv_time = (TextView) findViewById(R.id.zhucetime);
new TimeThread().start();
//**********************************************************
dbOpenHelper = new MyDatabaseOpenHelper(this);
final EditText etname =(EditText) findViewById(R.id.add_name);
final EditText etID =(EditText) findViewById(R.id.add_ID);
final TextView ettime =(TextView) findViewById(R.id.zhucetime);
Button btn_Save =(Button)findViewById(R.id.save_btn);
//Button btn_Cancel =(Button)findViewById(R.id.cancel_btn1);
btn_Save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name =etname.getText().toString();
String ID =etID.getText().toString();
String time=ettime.getText().toString();
if (name.equals("")||ID.equals("")||time.equals("")){
Toast.makeText(InsertActivity.this,"输入不全,请重新输入:",Toast.LENGTH_SHORT).show();
}
else {
//调用insertData方法,实现插入数据
insertData(dbOpenHelper.getReadableDatabase(),name,ID,time);
//显示提示信息
Toast.makeText(InsertActivity.this,"添加成功!",Toast.LENGTH_LONG).show();
}
finish();
}
});
/*
下面是返回主界面的代码,由于这儿出现了bug,特将他去diao,
这个bug是 我们登陆时往主界面传了一个值就是用户名
但是我们从此界面向主界面走的过程中,他没有传用户名,所以出现此问题
解决方法是把这个按钮不要了,直接用案桌手机自定义的返回建
因为我们不是苹果开发,所以暂时不考虑返回间的问题
当然,该天肯定会解决这个问题
btn_Cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(InsertActivity.this,MainActivity.class);
startActivity(intent);
finish();
}
});*/
}
private void insertData(SQLiteDatabase readableDatabase, String name, String ID, String time){
//生词ContentValues对象
ContentValues values =new ContentValues();
//向该对象当中插入键值对,其中键是列名,值是希望插入这一列的值,值必须和数据库的数据类型匹配
values.put("name",name);//保存联系人
values.put("ID",ID);//保存电话
values.put("time",time);
readableDatabase.insert("dict",null,values);//执行插入操作
}
//*****************************************下面是时间的代码***************************************
/*
本次是利用丁丁的达卡软件而来的设计思路
*/
public class TimeThread extends Thread{
@Override
public void run() {
super.run();
do{
try {
Thread.sleep(1000);
Message msg = new Message();
msg.what = msgKey1;
mHandler.sendMessage(msg);
} catch (InterruptedException e) {
e.printStackTrace();
}
}while (true);
}
}
private Handler mHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what){
case msgKey1:
long time = System.currentTimeMillis();
Date date = new Date(time);
SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分 EEE");
tv_time.setText(format.format(date));
break;
default:
break;
}
}
};
/*
private Handler mHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what){
case msgKey1:
long time = System.currentTimeMillis();
Date date = new Date(time);
SimpleDateFormat format = new SimpleDateFormat(“yyyy年MM月dd日 HH时mm分ss秒 EEE”);
tv_time.setText(format.format(date));
break;
default:
break;
}
}
};
*/
/*
时间的代码结束
*/
}