私のウィジェットはサービスを開始し、サービスは3つのLinearLayoutsのリストを更新します。複数のOnClick同じインテントのウィジェット
私は別のエクストラ
でそれぞれのLinearLayoutにSetOnClickPeningIntentを設定したいが、私はウィジェットを開始し、最後のものだけがonclickableあるLinearLayoutsをクリックしたときに= /私が間違って何を知りません。あなたが私を助けてくれることを願います。
RemoteViews remoteViews = new RemoteViews(getPackageName(),
R.layout.widget_layout);
for (int widgetId : appWidgetIds) {
int[] lls = { R.id.ll_con_1, R.id.ll_con_2, R.id.ll_con_3 };
for (int i = 0; i < jray.length(); i++) {
try {
JSONObject o = jray.getJSONObject(i);
//Onclick
if(i == 0)
{
Intent msg_intent = new Intent(getApplicationContext(), MSGsOpenMsg.class);
msg_intent.putExtra("messageid", o.getString("id"));
PendingIntent msg_pendingIntent = PendingIntent.getActivity(
getApplicationContext(), 0, msg_intent, Intent.FLAG_ACTIVITY_NEW_TASK);
remoteViews.setOnClickPendingIntent(R.id.ll_con_1, msg_pendingIntent);
}
else if(i == 1)
{
Intent msg_intent1 = new Intent(getApplicationContext(), MSGsOpenMsg.class);
msg_intent1.putExtra("messageid", o.getString("id"));
PendingIntent msg1_pendingIntent = PendingIntent.getActivity(
getApplicationContext(), 0, msg_intent1, Intent.FLAG_ACTIVITY_NEW_TASK);
remoteViews.setOnClickPendingIntent(R.id.ll_con_2, msg1_pendingIntent);
}
else if(i == 2)
{
Intent msg_intent = new Intent(getApplicationContext(), MSGsOpenMsg.class);
msg_intent.putExtra("messageid", o.getString("id"));
PendingIntent msg2_pendingIntent = PendingIntent.getActivity(
getApplicationContext(), 0, msg_intent, Intent.FLAG_ACTIVITY_NEW_TASK);
remoteViews.setOnClickPendingIntent(R.id.ll_con_3, msg2_pendingIntent);
}
} catch (JSONException e) {
}
}
}
Heheありがとう!私は前にこれを試しましたが、ちょっと違う方法で試してみました。しかし、今それは動作します!私はただrequestCodeをiに設定しました。 – Stefan
Hehe。それが機能している場合は、質問に回答としてマークする必要があります。フィードバックをお寄せいただきありがとうございます。 –
非常に有用な答え、ありがとう!私は半日でこれと闘っていた。 – JensJensen