日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

日历签到 java_我的Android案例―签到日历

發布時間:2023/12/4 Android 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 日历签到 java_我的Android案例―签到日历 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

public class MainActivity extends Activity {

//Log標簽

private static final String TAG = "SIGN";

//聲明對象

private Button sign;

private TextView show;

private GridView myDate;

//獲得本地時間

Time nowTime = new Time();

//1個月內的天數

private int dayMaxNum;

private int year,month,day,ym;

private SignDAO sdao;

//查詢結果

private List list = new ArrayList();

private ArrayList> sinalist,alisttmp;

@SuppressLint("NewApi")

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Log.i(TAG, "SIGN is onCreate");

//初始化對象

init();

//初始化數據庫信息

initdata();

myDate.setOnItemClickListener(new OnItemClickListener(){

@Override

public void onItemClick(AdapterView> arg0, View arg1, int arg2,

long arg3) {

//判斷是不是已簽到 從服務器獲得簽到信息

//摹擬從本地數據庫獲得信息

if(day==arg2+1)//只能當天簽到

{

sinalist = sdao.findSinInfo("zhangsan",year+"-"+month+"-"+(arg2+1),"0");

if(sinalist.size()>0)

{

Toast.makeText(getApplicationContext(), "已簽過到不能重復簽到", 200).show();

Log.d("", "已簽到");

}

else

{

//在數據庫插入1條數據

sdao.insertSinInfo("zhangsan", "張3", year+"-"+month+"-"+(arg2+1),year+""+month);

initdata();

}

}

}

});

}

/**

* @param初始化對象

*/

private void init(){

sign = (Button)this.findViewById(R.id.sign);

show = (TextView)this.findViewById(R.id.show);

myDate = (GridView)this.findViewById(R.id.myDate);

//取本地時間(時間應當從服務器獲得)

nowTime.setToNow();

year = nowTime.year;

month = nowTime.month+1;

day = nowTime.monthDay;

show.setText(year+"-"+month+"-"+day);

}

/**

* @param初始化數據庫信息

*/

private void initdata(){

sdao = new SignDAO(MainActivity.this);

sdao.open();

sinalist = sdao.findSinInfo("zhangsan","",year+""+month);//查詢當月已簽到的日期

list.clear();

dayMaxNum = getCurrentMonthDay();

for(int i=0;i

{

list.add(i, i+1+"");

}

myDate.setSelector(new ColorDrawable(Color.TRANSPARENT));

myDate.setAdapter(new getDayNumAdapter(getApplicationContext()));

}

class getDayNumAdapter extends BaseAdapter{

Context c;

public getDayNumAdapter(Context c)

{

this.c = c;

}

@Override

public int getCount() {

return list.size();

}

@Override

public Object getItem(int position) {

return list.get(position);

}

@Override

public long getItemId(int arg0) {

return 0;

}

@Override

public View getView(int position, View convertView, ViewGroup parent) {

View v = LinearLayout.inflate(c, R.layout.date, null);

TextView txtWeek = (TextView)v.findViewById(R.id.txtWeekDateMB);

TextView txtDay = (TextView)v.findViewById(R.id.txtDayDateMB);

switch (position)

{

case 0:

txtWeek.setText("1");

break;

case 1:

txtWeek.setText("2");

break;

case 2:

txtWeek.setText("3");

break;

case 3:

txtWeek.setText("4");

break;

case 4:

txtWeek.setText("5");

break;

case 5:

txtWeek.setText("6");

break;

case 6:

txtWeek.setText("日");

break;

}

if(position<7)

{

txtWeek.setVisibility(View.VISIBLE);

}

int lstDay = Integer.parseInt(list.get(position));

//標記當前日期

if(day==lstDay)

{

txtDay.setText(list.get(position).toString());

txtDay.setTextColor(Color.RED);

}else

txtDay.setText(list.get(position).toString());

//標記已簽到后的背景

for(int i=0;i

{

String nowdate = sinalist.get(i).get("sindate").toString();

String[] nowdatearr = nowdate.split("-");

if(lstDay==Integer.parseInt(nowdatearr[2])){

txtDay.setBackgroundColor(Color.BLUE);

++ym;

}

sign.setText("已簽到天數:"+ym);

}

return v;

}

}

//獲得當月的 天數

public int getCurrentMonthDay() {

Calendar a = Calendar.getInstance();

a.set(Calendar.DATE, 1);

a.roll(Calendar.DATE, ⑴);

int maxDate = a.get(Calendar.DATE);

return maxDate;

}

}

DBHelper.java

public class DBHelper extends SQLiteOpenHelper {

public DBHelper(Context context) {

super(context, "sign.db", null, 1);

}

/**

* @param創建表

*/

@Override

public void onCreate(SQLiteDatabase db) {

String sql="create table sinTB(" +

"sin_id integer primary key autoincrement," +

"userid varchar(20)," +

"usernmae varchar(20)," +

"sindate varchar(20)," +

"yearmonth varchar(20)," +

"nowdate integer" +

")";

db.execSQL(sql);

}

/**

* @param數據庫版本更新時,會調用此方法

*/

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}

}

SignDAO.java

public class SignDAO {

//聲明對象

Context context;

SQLiteDatabase db;

DBHelper dbHelper;

public SignDAO(Context context){

this.context = context;

}

/**

* @param 打開數據庫連接

*/

public boolean open(){

dbHelper = new DBHelper(context);

db = dbHelper.getWritableDatabase();

if(db == null){

return false;

}

return true;

}

/**

* @param關閉連接

*/

public void close(){

dbHelper.close();

}

/**

* @param插入信息

* @param uid

* @param name

* @param date

* @param ym

*/

public void insertSinInfo(String uid,String name,String date,String month){

String sql="insert into sinTB(userid,usernmae,sindate,yearmonth,nowdate) values(?,?,?,?,?)";

db.execSQL(sql,new Object[]{uid,name,date,month,System.currentTimeMillis()});

}

/**

* @param查詢信息

* @param uid

* @param date

* @param ym

* @return

*/

public ArrayList> findSinInfo(String uid,String date,String month){

ArrayList> alist = new ArrayList>();

alist.clear();

HashMap rowMap;

String sql;

try{

if("0".equals(month))

{

sql="select * from sinTB where userid='"+uid+"' and sindate='"+date+"'";

}

else

{

sql="select * from sinTB where userid='"+uid+"' and yearmonth='"+month+"'";

}

Cursor cur = db.rawQuery(sql, null);

cur.moveToFirst();

while(cur.moveToNext()){

rowMap = new HashMap();

rowMap.put("sin_id", cur.getInt(cur.getColumnIndex("sin_id")));

rowMap.put("userid", cur.getString(cur.getColumnIndex("userid")));

rowMap.put("usernmae", cur.getString(cur.getColumnIndex("usernmae")));

rowMap.put("sindate", cur.getString(cur.getColumnIndex("sindate")));

long aa = cur.getLong(cur.getColumnIndex("nowdate"));

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date now = new Date(aa);

String date1 = format.format(now);

rowMap.put("nowdate", date1);

Log.e("", cur.getString(cur.getColumnIndex("sindate")));

alist.add(rowMap);

}

return alist;

}catch(Exception e){

return alist;

}

}

}

總結

以上是生活随笔為你收集整理的日历签到 java_我的Android案例―签到日历的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 黄色片链接 | 日韩精品成人无码专区免费 | www在线观看免费视频 | av片在线看| 亚洲伦理一区 | 国产高清不卡一区 | 欧美精品一区二区成人 | 操穴网站| 人人妻人人藻人人爽欧美一区 | 亲女禁h啪啪宫交 | a∨鲁丝一区鲁丝二区鲁丝三区 | 三级a做爰全过程 | 免费三片在线播放 | а√天堂8资源在线官网 | 手机成人在线 | 亚洲视频中文字幕 | 日本人添下边视频免费 | 久久泄欲网 | 狠狠操影视 | 亚洲天堂小视频 | 国产成人无码精品久久二区三 | 国产精品乱码一区二区 | 直接看的av | 国产美女无遮挡网站 | 国产性猛交╳xxx乱大交一区 | 新红楼梦2005锦江版高清在线观看 | 久久国产精品影视 | 亚洲国产亚洲 | 日本人与黑人做爰视频 | 日本免费电影一区二区三区 | 亚洲精品久久久中文字幕痴女 | 四虎影像 | 本站只有精品 | 日本天堂免费a | 国产精品视频一二区 | 美女大逼| 欧美中文字幕在线播放 | 亚洲一区在线观 | 国产精品亚洲欧美在线播放 | 日本免费电影一区二区三区 | 国产视频欧美视频 | 浓精喷进老师黑色丝袜在线观看 | 国产福利视频一区二区三区 | 大胸美女无遮挡 | 国产高清视频免费观看 | 宅男午夜影院 | 中文字幕乱码一二三区 | 高清不卡一区 | 一区日韩 | 波多野结衣在线免费视频 | 无码成人精品区一级毛片 | 欧美大尺度做爰啪啪床戏明星 | 欧美日韩视频在线观看免费 | 手机av网址| 97国产视频| 亚洲午夜精品一区二区 | 免费色网址 | 操xxxx| 国产做受网站 | 中国黄色录像 | 日本一道在线 | 欧美春色 | 日本xxxx在线观看 | 人妻少妇精品无码专区 | 丰满少妇久久久久久久 | 久久青青操 | 国产精品福利一区 | 午夜av影视 | 精品久久99 | 国产精品国产三级国产专播品爱网 | 乡村乱淫| www.色播| 日韩免费av在线 | av无码av天天av天天爽 | 香蕉依人| 国产69精品久久 | 变态另类一区二区 | 亚洲视频入口 | 日本亚洲色图 | 蜜桃视频在线观看一区 | 国产精品黑人一区二区三区 | 成人免费毛片网 | 欧美日韩成人一区二区三区 | 中文字幕成人 | 欧美色图久久 | www.色国产 | 91在线不卡 | 91激情视频在线观看 | www.欧美激情| 国产97超碰 | 亚洲小说区图片区都市 | 色播五月婷婷 | 欧美人与禽猛交乱配 | 中文字幕+乱码+中文乱 | 天天色播 | 亚洲成人a√ | 美女张开双腿让男人捅 | 中文字幕第一区 | 日韩精品在线免费观看 |