2

ウィジェットとアクションに問題がある

コンフィギュレーター クラスでは、ウィジェット全体とボタンのリスナーを設定します。

 //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
4

0 に答える 0