日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > php開源 > 綜合技術(shù) > 我的Android案例―簽到日歷

我的Android案例―簽到日歷

來源:程序員人生   發(fā)布時間:2015-01-29 08:15:31 閱讀次數(shù):4695次

2015年的Android案例之旅

案例8:簽到日歷

知識點:

  1. GridView的使用
  2. SQLite的使用

觸及文件:

  1. res->layout->activity_main.xml 主布局文件
  2. res->layout->date.xml 布局文件
  3. src->db->DBHelper.java java文件
  4. src->db->SignDAO.java java文件
  5. src->activity->MainActivity.java java文件
activity_main.xml
<!-- 線性布局 --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="match_parent" android:layout_width="match_parent" android:orientation="vertical"> <!-- 文本控件 顯示當(dāng)前月份 --> <TextView android:id="@+id/show" android:gravity="center" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="月份"/> <!-- 網(wǎng)格視圖 --> <GridView android:id="@+id/myDate" android:layout_width="match_parent" android:layout_height="355dp" android:numColumns="7"></GridView> <Button android:id="@+id/sign" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="簽到"/> </LinearLayout>

date.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/txtWeekDateMB" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginTop="10dp" android:visibility="gone" /> <TextView android:id="@+id/txtDayDateMB" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginTop="10dp" /> </LinearLayout>

MainActivity.java

public class MainActivity extends Activity { //Log標(biāo)簽 private static final String TAG = "SIGN"; //聲明對象 private Button sign; private TextView show; private GridView myDate; //獲得本地時間 Time nowTime = new Time(); //1個月內(nèi)的天數(shù) private int dayMaxNum; private int year,month,day,ym; private SignDAO sdao; //查詢結(jié)果 private List<String> list = new ArrayList<String>(); private ArrayList<HashMap<String, Object>> 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(); //初始化數(shù)據(jù)庫信息 initdata(); myDate.setOnItemClickListener(new OnItemClickListener(){ @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { //判斷是不是已簽到 從服務(wù)器獲得簽到信息 //摹擬從本地數(shù)據(jù)庫獲得信息 if(day==arg2+1)//只能當(dāng)天簽到 { sinalist = sdao.findSinInfo("zhangsan",year+"-"+month+"-"+(arg2+1),"0"); if(sinalist.size()>0) { Toast.makeText(getApplicationContext(), "已簽過到不能重復(fù)簽到", 200).show(); Log.d("", "已簽到"); } else { //在數(shù)據(jù)庫插入1條數(shù)據(jù) 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); //取本地時間(時間應(yīng)當(dāng)從服務(wù)器獲得) nowTime.setToNow(); year = nowTime.year; month = nowTime.month+1; day = nowTime.monthDay; show.setText(year+"-"+month+"-"+day); } /** * @param 初始化數(shù)據(jù)庫信息 */ private void initdata(){ sdao = new SignDAO(MainActivity.this); sdao.open(); sinalist = sdao.findSinInfo("zhangsan","",year+""+month);//查詢當(dāng)月已簽到的日期 list.clear(); dayMaxNum = getCurrentMonthDay(); for(int i=0;i<dayMaxNum;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)); //標(biāo)記當(dāng)前日期 if(day==lstDay) { txtDay.setText(list.get(position).toString()); txtDay.setTextColor(Color.RED); }else txtDay.setText(list.get(position).toString()); //標(biāo)記已簽到后的背景 for(int i=0;i<sinalist.size();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("已簽到天數(shù):"+ym); } return v; } } //獲得當(dāng)月的 天數(shù) 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 創(chuàng)建表 */ @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 數(shù)據(jù)庫版本更新時,會調(diào)用此方法 */ @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 打開數(shù)據(jù)庫連接 */ public boolean open(){ dbHelper = new DBHelper(context); db = dbHelper.getWritableDatabase(); if(db == null){ return false; } return true; } /** * @param 關(guān)閉連接 */ 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<HashMap<String, Object>> findSinInfo(String uid,String date,String month){ ArrayList<HashMap<String,Object>> alist = new ArrayList<HashMap<String,Object>>(); alist.clear(); HashMap<String, Object> 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<String, Object>(); 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; } } }






生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機掃描二維碼進(jìn)行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 一级二级在线观看 | 亚洲一区 在线播放 | 亚洲一区二区三区四区不卡 | 欧美日韩成人在线播放 | 成人一区二区三区免费视频 | 人人射人人干 | 日韩电影一区 | 超碰在线久 | 欧美日韩中文字幕在线 | 综合久久狠狠色成人网 | 免费性爱视频 | 欧美日韩一区二区三区在线视频 | 日韩欧美中出 | 久久视频精品 | 黄色小视频在线看 | 91一区二区在线 | a在线免费观看 | 国产一区二区三区在线 | 国产一区二区三区四区五区3d | 欧美国产一区二区 | 精品免费二区三区三区高中清不卡 | 国产成人亚洲综合 | 曰韩一级片 | 黄色不卡 | 国产午夜一区二区三区 | 久久女| 老熟妇午夜毛片一区二区三区 | 亚洲国产精品久久久久 | 欧美日韩精品综合 | 国产精品视频一二三区 | 欧美三级视频在线观看 | 免费在线a| 久久久久成人精品免费播放 | 国产精品电影网 | 欧美精品一区二区视频 | 日韩一区二区三区在线播放 | 中文字幕第八页 | 精品三区| 国产精品免费一区二区三区四区 | a在线免费 | 舐め犯し波多野结衣在线观看 |