ウィジェットとアクションに問題がある
コンフィギュレーター クラスでは、ウィジェット全体とボタンのリスナーを設定します。
//the first one when we click on the button
Intent firstIntent = new Intent(c.getApplicationContext(), ShowDetailedCityWeather.class);
// Intent firstIntent = new Intent(WeatherWidget.ACTION_WIDGET_RECEIVER);
PendingIntent myPI = PendingIntent.getActivity(c, 0, firstIntent, 0);
firstIntent.setAction("Привет мир");
remoteViews.setOnClickPendingIntent(R.id.imageButton1, myPI);
firstIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, awID);
//the second one when we click on widget
Intent secondIntent = new Intent(ChoiseCityList.this, MainTelephoneActivity.class);
PendingIntent myPI2 = PendingIntent.getActivity(c, 0, secondIntent, 0);
remoteViews.setOnClickPendingIntent(R.id.newLinearLayout, myPI2);
manager.updateAppWidget(awID, remoteViews);
ボタンをクリックすると、新しいアクティビティ ShowDetailedCityWeather が実行を開始します。多くのウィジェットがある場合、このアクティビティでウィジェットの ID を検出するにはどうすればよいですか? また、ウィジェットからデータを取得したい。私は試します:
Intent prevIntent = getIntent();
if(prevIntent != null)
Toast.makeText(this, "Hello:" + prevIntent.getAction(), Toast.LENGTH_SHORT).show();
else
Toast.makeText(this, "Help!", Toast.LENGTH_SHORT).show();
トーストには次のものがあります: Hello: null
それから私は試しました:
int awID = -90;
Context c = ShowDetailedCityWeather.this;
Intent intentWidget = getIntent();
Toast.makeText(c, "Action : " + intentWidget.getAction(), Toast.LENGTH_SHORT).show();
Bundle extras = intentWidget.getExtras();
if(extras!=null)
awID = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
Toast.makeText(c, "ID : " + awID, Toast.LENGTH_SHORT).show();
そして私はいつも-90です。手伝ってくれませんか...
enter code here