实例介绍
【实例截图】
【核心代码】
package com.kelly.activity; import com.kelly.activity.R; import com.kelly.activity.TodayDateLogin; import com.kelly.entity.DateDay; import com.kelly.util.ToDoDB; import android.app.PendingIntent; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProvider; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.graphics.Typeface; import android.text.format.Time; import android.util.Log; import android.view.Gravity; import android.view.View; import android.widget.LinearLayout; import android.widget.RemoteViews; import android.widget.TextView; import android.widget.LinearLayout.LayoutParams; public class TodayDate extends AppWidgetProvider { private static int[] bitmapid={R.drawable.number_0,R.drawable.number_1,R.drawable.number_2,R.drawable.number_3,R.drawable.number_4,R.drawable.number_5,R.drawable.number_6,R.drawable.number_7,R.drawable.number_8,R.drawable.number_9,}; public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { //Log.i("onUpdate", "已进入TD的onUpdate"); final int N=appWidgetIds.length; for (int i = 0; i < N; i ) { updateWidget(appWidgetManager, context, appWidgetIds[i]); } //super.onUpdate(context, appWidgetManager, appWidgetIds); } @Override //这个onReceive还是沿用旧方法 public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub super.onReceive(context, intent); if (intent.getAction().equalsIgnoreCase("android.appwidget.action.APPWIDGET_UPDATE")) { //Log.i("onReceive","td已进入onReceive"); /*DateDay dd=new DateDay(context); String month = dd.getMonth() " " dd.getYear(); String date =dd.getDate(); String weekDay; weekDay ="第" dd.getWeedDay() "周" " " dd.getDays1(); RemoteViews views=new RemoteViews(context.getPackageName(), R.layout.widget_layout); views.setTextViewText(R.id.Month, month); views.setTextViewText(R.id.Date, date); views.setTextViewText(R.id.WeekDay, weekDay); AppWidgetManager appWidgetManger=AppWidgetManager.getInstance(context); int[] appIds=appWidgetManger.getAppWidgetIds(new ComponentName(context,TodayDate.class)); appWidgetManger.updateAppWidget(appIds, views);*/ Time time=new Time(); time .setToNow(); RemoteViews views=new RemoteViews(context.getPackageName(), R.layout.widget_layout_4x1); // String weekDay; DateDay dd=new DateDay(context); // weekDay =dd.getWeedDay();// " " dd.getDays1(); //String month = dd.getMonth() " " dd.getYear(); //String date =dd.getDate(); String WEEK=time.weekDay ""; if (WEEK.equals("0")||WEEK.equals("6")) { } else { String []course=new String[5]; String []add=new String[5]; Cursor cursor; SQLiteDatabase db; ToDoDB toDoDB=new ToDoDB(context); db=toDoDB.getReadableDatabase(); String sql="select * from todo_schedule where todo_week=" WEEK; cursor =db.rawQuery(sql, null); Log.i("", sql); //判断游标是否为空 if(cursor !=null ){ int i=0,n=cursor .getCount(); cursor .moveToFirst(); Log.i("", "cursor !=null"); Log.i("n=?", n ""); //遍历游标 11. while (!cursor .isAfterLast()) { //获得ID //int id = mCursor .getInt(0); //获得课程 course[i]=cursor .getString(3); Log.i("", cursor .getString(3)); //获得地址 add[i]=cursor .getString(4); i ; cursor .moveToNext(); } } db.close(); cursor.close(); views.setTextViewText(R.id.textView1, dd.getWeedDay()); views.setTextViewText(R.id.textView2, dd.getDays2()); views.setViewVisibility(R.id.ll1, View.GONE); views.setViewVisibility(R.id.ll2, View.GONE); views.setViewVisibility(R.id.ll3, View.GONE); views.setViewVisibility(R.id.ll4, View.GONE); views.setViewVisibility(R.id.ll5, View.GONE); if (!course[0].equals("")||!add[0].equals("")) { views.setViewVisibility(R.id.ll1, View.VISIBLE); views.setTextViewText(R.id.schedule_1, course[0]); views.setTextViewText(R.id.add_1, add[0]); Log.i("course[0]",course[0]); } if (!course[1].equals("")||!add[1].equals("")) { views.setViewVisibility(R.id.ll2, View.VISIBLE); views.setTextViewText(R.id.schedule_2, course[1]); views.setTextViewText(R.id.add_2, add[1]); Log.i("course[1]",course[1]); } if (!course[2].equals("")||!add[2].equals("")) { views.setViewVisibility(R.id.ll3, View.VISIBLE); views.setTextViewText(R.id.schedule_3, course[2]); views.setTextViewText(R.id.add_3, add[2]); } if (!course[3].equals("")||!add[3].equals("")) { views.setViewVisibility(R.id.ll4, View.VISIBLE); views.setTextViewText(R.id.schedule_4, course[3]); views.setTextViewText(R.id.add_4, add[3]); } if (!course[4].equals("")||!add[4].equals("")) { views.setViewVisibility(R.id.ll5, View.VISIBLE); views.setTextViewText(R.id.schedule_5, course[4]); views.setTextViewText(R.id.add_5, add[4]); } // if (course[0].equals("")&&add[0].equals("")) { // views.setViewVisibility(R.id.l1, View.GONE); // } // else { // views.setTextViewText(R.id.widget_tv1_2, course[0]); // views.setTextViewText(R.id.widget_tv1_3, add[0]); // } // // if (course[1].equals("")&&add[1].equals("")) { // views.setViewVisibility(R.id.l2, View.GONE); // } // else { // views.setTextViewText(R.id.widget_tv2_2, course[1]); // views.setTextViewText(R.id.widget_tv2_3, add[1]); // } // // if (course[2].equals("")&&add[2].equals("")) { // views.setViewVisibility(R.id.l3, View.GONE); // } // else { // views.setTextViewText(R.id.widget_tv3_2, course[2]); // views.setTextViewText(R.id.widget_tv3_3, add[2]); // } // // if (course[3].equals("")&&add[3].equals("")) { // views.setViewVisibility(R.id.l4, View.GONE); // } // else { // views.setTextViewText(R.id.widget_tv4_2, course[3]); // views.setTextViewText(R.id.widget_tv4_3, add[3]); // } // // if (course[4].equals("")&&add[4].equals("")) { // views.setViewVisibility(R.id.l5, View.GONE); // } // else { // views.setTextViewText(R.id.widget_tv5_2, course[4]); // views.setTextViewText(R.id.widget_tv5_3, add[4]); // } // } // views.setTextViewText(R.id.widget_tv0, weekDay); AppWidgetManager appWidgetManger=AppWidgetManager.getInstance(context); int[] appIds=appWidgetManger.getAppWidgetIds(new ComponentName(context,TodayDate.class)); appWidgetManger.updateAppWidget(appIds, views); } } public static void updateWidget(AppWidgetManager appWidgetManager, Context context, int appWidgetId){ //设置点击事件 RemoteViews views=new RemoteViews(context.getPackageName(), R.layout.widget_layout_4x1); Intent onClickIntent = new Intent(context, TodayDateLogin.class); PendingIntent intent1 = PendingIntent.getActivity(context, 0, onClickIntent, 0); views.setOnClickPendingIntent(R.id.Base, intent1); Time time=new Time(); time .setToNow(); DateDay dd=new DateDay(context); //String month = dd.getMonth() " " dd.getYear(); //String date =dd.getDate(); String WEEK=time.weekDay ""; // String weekDay; // weekDay ="第" dd.getWeedDay() "周";// " " dd.getDays1(); if (WEEK.equals("0")||WEEK.equals("6")) { } else { String []course=new String[5]; String []add=new String[5]; Cursor cursor; SQLiteDatabase db; ToDoDB toDoDB=new ToDoDB(context); db=toDoDB.getReadableDatabase(); String sql="select * from todo_schedule where todo_week=" WEEK; cursor =db.rawQuery(sql, null); Log.i("", sql); //判断游标是否为空 if(cursor !=null ){ int i=0,n=cursor .getCount(); cursor .moveToFirst(); Log.i("", "cursor !=null"); Log.i("n=?", n ""); //遍历游标 11. while (!cursor .isAfterLast()) { //获得ID //int id = mCursor .getInt(0); //获得用户名 course[i]=cursor .getString(3); Log.i("", cursor .getString(3)); //获得密码 add[i]=cursor .getString(4); i ; cursor .moveToNext(); } } db.close(); cursor.close(); // LinearLayout llhostLayout=context.findViewById(R.id.widget_ll_host); // for (int j = 0; j < course.length; j ) { //// RemoteViews rViews=La // LinearLayout llhost=get // LinearLayout ll=new LinearLayout(context);//初始化LinearLayout // LinearLayout.LayoutParams lParams = new LayoutParams(55,LinearLayout.LayoutParams.FILL_PARENT);//这个属性是设置空间的长宽,其实还可以设置其他的控件的其他属性; // ll.setOrientation(LinearLayout.VERTICAL); //设置朝向 // ll.setPadding(2, 5, 0, 2);//设置四周留白 // // ll.setBackgroundResource(bitmapid[j 1]); // TextView tv1=new TextView(context);//初始化TextView // tv1.setText(course[j]);//设置内容 // tv1.setLines(4); // tv1.setGravity(Gravity.CENTER); // tv1.setMaxLines(4); // tv1.setTextSize(10);//设置字体大小 // tv1.setTextColor(context.getResources().getColor(R.color.button_back)); // ll.addView(tv1);//添加到LinearLayout中 // TextView tv2=new TextView(context);//初始化TextView // tv2.setText(add[j]);//设置内容 // tv2.setTextSize(10);//设置字体大小 // tv2.setGravity(Gravity.HORIZONTAL_GRAVITY_MASK); // tv2.setLines(1); // tv2.setMaxLines(1); // tv2.setTextScaleX((float) 0.85); // tv2.setTextColor(context.getResources().getColor(R.color.white)); // ll.addView(tv2);//添加到LinearLayout中 // views.addView(R.id.widget_ll_host, ll); // Typeface tf = Typeface.createFromFile("fonts/Roboto-Thin.ttf"); views.setTextViewText(R.id.textView1, dd.getWeedDay()); views.setTextViewText(R.id.textView2, dd.getDays2()); // views.setViewVisibility(R.id.ll1, View.GONE); // views.setViewVisibility(R.id.ll2, View.GONE); // views.setViewVisibility(R.id.ll3, View.GONE); // views.setViewVisibility(R.id.ll4, View.GONE); // views.setViewVisibility(R.id.ll5, View.GONE); if (!course[0].equals("")||!add[0].equals("")) { views.setViewVisibility(R.id.ll1, View.VISIBLE); views.setTextViewText(R.id.schedule_1, course[0]); views.setTextViewText(R.id.add_1, add[0]); } if (!course[1].equals("")||!add[1].equals("")) { views.setViewVisibility(R.id.ll2, View.VISIBLE); views.setTextViewText(R.id.schedule_2, course[1]); views.setTextViewText(R.id.add_2, add[1]); } if (!course[2].equals("")||!add[2].equals("")) { views.setViewVisibility(R.id.ll3, View.VISIBLE); views.setTextViewText(R.id.schedule_3, course[2]); views.setTextViewText(R.id.add_3, add[2]); } if (!course[3].equals("")||!add[3].equals("")) { views.setViewVisibility(R.id.ll4, View.VISIBLE); views.setTextViewText(R.id.schedule_4, course[3]); views.setTextViewText(R.id.add_4, add[3]); } if (!course[4].equals("")||!add[4].equals("")) { views.setViewVisibility(R.id.ll5, View.VISIBLE); views.setTextViewText(R.id.schedule_5, course[4]); views.setTextViewText(R.id.add_5, add[4]); } } // views.setTextViewText(R.id.widget_tv0, weekDay); appWidgetManager.updateAppWidget(appWidgetId, views); //Log.i("TD","已为ID为" appWidgetId "的view设置监听器"); //Log.i("TD更新情况", "ID为" appWidgetId "的views已完成更新"); } }
标签:
网友评论
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
支持(0) 盖楼(回复)
支持(0) 盖楼(回复)
支持(0) 盖楼(回复)