日韩性视频-久久久蜜桃-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案例―签到日历的全部內容,希望文章能夠幫你解決所遇到的問題。

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