2016-08-31 91 views
0

我创建了一个Widget,它有一个Button并低于它有一个ListView。当按钮被点击时,我想打开一个Activity,但它似乎不工作,我不知道为什么。ListView和按钮点击小工具[Android]

这里是我的代码在我AppWidgetProvider

@Override 
public void onUpdate(Context context, AppWidgetManager appWidgetManager, 
        int[] appWidgetIds) { 
    final int N = appWidgetIds.length; 

    for (int i = 0; i < N; ++i) { 
     RemoteViews remoteViews = updateWidgetListView(context, 
       appWidgetIds[i]); 
     appWidgetManager.updateAppWidget(appWidgetIds[i], remoteViews); 


    Intent configIntent = new Intent(context, NewActivity.class); 
    PendingIntent configPendingIntent = PendingIntent.getActivity(context, 0, configIntent, 0); 
    remoteViews.setOnClickPendingIntent(R.id.btn_activity, configPendingIntent); 
    } 



    super.onUpdate(context, appWidgetManager, appWidgetIds); 

} 

private RemoteViews updateWidgetListView(Context context, int appWidgetId) { 

    RemoteViews remoteViews = new RemoteViews(context.getPackageName(), 
      R.layout.widget_layout); 

    Intent svcIntent = new Intent(context, WidgetService.class); 
    svcIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); 
    svcIntent.setData(Uri.parse(svcIntent.toUri(Intent.URI_INTENT_SCHEME))); 

    remoteViews.setRemoteAdapter(appWidgetId, R.id.listViewWidget, 
      svcIntent); 

    remoteViews.setEmptyView(R.id.listViewWidget, R.id.empty_view); 

    return remoteViews; 
} 

我想这是因为我的updateWidgetListView,我试图把意向内部updateWidgetListView,但它仍然按钮被点击时无法正常工作。

预先感谢您。

回答

0

在我onUpdate我初始化我widget_layoutiteration

public void onUpdate(Context context, AppWidgetManager appWidgetManager, 
        int[] appWidgetIds) { 

    // initializing widget layout 
    RemoteViews rvBtn = new RemoteViews(context.getPackageName(), 
      R.layout.home_widget); 

    // register the button event 
    rvBtn.setOnClickPendingIntent(R.id. btn_activity, 
      buildButtonPendingIntent(context)); 

    final int N = appWidgetIds.length; 

    for (int i = 0; i < N; ++i) { 
    //initialize another RemoteViews for ListView 
     RemoteViews remoteViews = updateWidgetListView(context, 
       appWidgetIds[i]); 
     appWidgetManager.updateAppWidget(appWidgetIds[i], remoteViews); 
    } 


    super.onUpdate(context, appWidgetManager, appWidgetIds); 

} 

然后创建一个BroadcastReceiver在那里我会打电话给Intent并添加receiverAndroidManifest