我真的很陌生,在製作Android應用程序;只是試圖製作一個簡單的小部件來說明時間。如果點擊它,小部件也會開啓一個基本的活動。 Widget和Activity位於2個不同的項目文件中(在同一個工作區中),所以我必須導入Activity包才能訪問它的類。點擊Widget沒有打開新的活動
整個代碼:
public class FirstWidget extends AppWidgetProvider {
RemoteViews view = null;
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
Intent intent = new Intent(context, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
view = new RemoteViews(context.getPackageName(), R.layout.main);
view.setOnClickPendingIntent(R.id.widget_textview, pendingIntent);
appWidgetManager.updateAppWidget(new ComponentName(context, FirstWidget.class), view);
Timer timer = new Timer();
timer.scheduleAtFixedRate(new MyTime(context, appWidgetManager), 1, 1000);
}
private class MyTime extends TimerTask {
AppWidgetManager appWidgetManager;
ComponentName thisWidget;
DateFormat format = SimpleDateFormat.getTimeInstance(SimpleDateFormat.MEDIUM, Locale.getDefault());
public MyTime(Context context, AppWidgetManager appWidgetManager) {
this.appWidgetManager = appWidgetManager;
thisWidget = new ComponentName(context, FirstWidget.class);
}
public void run() {
Calendar cal = format.getCalendar();
int day = cal.get(Calendar.DAY_OF_WEEK);
switch (day) {
case(2):
view.setTextViewText(R.id.widget_textview, "MONDAY TIP " + format.format(new Date()));
break;
case(3):
view.setTextViewText(R.id.widget_textview, "TUESDAY TIP " + format.format(new Date()));
break;
case(4):
view.setTextViewText(R.id.widget_textview, "WEDNESDAY TIP " + format.format(new Date()));
break;
case(5):
view.setTextViewText(R.id.widget_textview, "THURSDAY TIP " + format.format(new Date()));
break;
case(6):
view.setTextViewText(R.id.widget_textview, "FRIDAY TIP " + format.format(new Date()));
break;
case(7):
view.setTextViewText(R.id.widget_textview, "SATURDAY TIP " + format.format(new Date()));
break;
case(1):
view.setTextViewText(R.id.widget_textview, "SUNDAY TIP " + format.format(new Date()));
break;
}
appWidgetManager.updateAppWidget(thisWidget, view);
}
}
}
我提出的活性的庫在Eclipse,並通過屬性 - > Android->庫同步時間它到窗口小部件。還通過Properties-> JAva Build Path-> Activity Package將Activity添加到Widget的Java Build路徑。
當我將Widget導入到emultaor中時,Widget和App都會被下載。我也可以把它們都帶到前面的屏幕上。該應用程序按預期工作(點擊按鈕,進入屏幕)。 Widget每秒更新其時間和日期。
但點擊小部件什麼也不做。
現在一直在看不同的教程5個小時。沒有看到我做錯了什麼。任何幫助將是巨大的
如果將其直接添加到項目中(無庫),您的活動是否會打開? – hasanghaforian
不是。我嘗試一下,當它試圖找到我的.class活動(即使它已導入並且Eclipse可以使用它)時,它會中斷它 – user1175688
您是否在Logcat中看到任何錯誤或警告?這兩個Activity都在庫中還是在您的包中? – hasanghaforian