내가 클릭 한 현재 Item
의 수를 얻을 수있는 방법 ListView
ListView에 항목 ID의 홈 화면 위젯
와의 홈 화면 widget
있습니다 '인사이트 사용자 정의 클래스 AppWidgetProvider
를 확장 : 나는 다음과 같은 방법으로 그것을 할 것을 시도했다 을
public void onUpdate(Context ctxt, AppWidgetManager mgr,
int[] appWidgetIds) {
for (int i=0; i<appWidgetIds.length; i++) {
Intent svcIntent=new Intent(ctxt, WidgetService.class);
svcIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetIds[i]);
svcIntent.setData(Uri.parse(svcIntent.toUri(Intent.URI_INTENT_SCHEME)));
RemoteViews widget=new RemoteViews(ctxt.getPackageName(),
R.layout.widget);
widget.setRemoteAdapter(appWidgetIds[i], R.id.contacts,
svcIntent);
Intent clickIntent=new Intent(ctxt, AppWidget.class);
clickIntent.setAction(ACTION_WIDGET_REFRESH);
clickIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetIds[i]);
PendingIntent pi=PendingIntent.getBroadcast(ctxt, 0 , clickIntent, PendingIntent.FLAG_UPDATE_CURRENT);
widget.setPendingIntentTemplate(R.id.contacts, pi);
mgr.updateAppWidget(appWidgetIds[i], widget);
}
super.onUpdate(ctxt, mgr, appWidgetIds);
}
@Override
public void onReceive(Context context, Intent intent) {
Log.i("gotcha","receive");
if (intent.getAction().equals(ACTION_WIDGET_REFRESH)) {
Intent callIntent = new Intent(Intent.ACTION_CALL);
Bundle extras = intent.getExtras();
int extrass= -1;
if(extras!=null) {
extrass = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_IDS);
}
Log.i("receive", Integer.toString(extrass)) ; // Here is I've expected to see Item ID
}
하지만 도움이되지 않습니다. 방금 다른 번호를 보았습니다 (아이템 ID는 아님)
어떻게 얻을 수 있습니까? 당신은 항상 requestCode
0을 주면 때문에
아직 도움이 안된다. 첫 번째 이후에 똑같은 ID를 얻었습니다. – Arseniy
appWidgetId 또는 목록 항목 ID를 원하십니까? – Isaiah
@Pepelac 목록 항목 ID를 가져 오려면 다음을 사용하십시오. RemoteViews rv = new RemoteViews (pkg, R.layout.item); 의도 i = 새로운 의도(). putExtra ("위치", 위치); rv.setOnClickFillInIntent (R.id.item, i); – Isaiah