Start activity by clicking on widget

前端 未结 3 2081
梦如初夏
梦如初夏 2020-12-15 18:18

I newbie at programming Android and I try to do a widget which has be able get some data from ISP about my account. There are a lot of unknown things how to do it, but I hav

相关标签:
3条回答
  • 2020-12-15 18:33

    Use this snippet in onUpdate() method of your widget AppWidgetProvider class:

    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widgetlayout);
        Intent configIntent = new Intent(context, Activity.class);
    
        PendingIntent configPendingIntent = PendingIntent.getActivity(context, 0, configIntent, 0);
    
        remoteViews.setOnClickPendingIntent(R.id.widget, configPendingIntent);
        appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);
    }     
    

    Here widgetlayout is name of your widget layout and R.id.widget is it's parent layout id.

    Edit:
    Now,I see your code that you added to your question.You would to do:

    PendingIntent.getActivity(context, 0, configIntent, 0);
    

    (that start's activity) instead of

    PendingIntent.getService(...);
    

    that attempt to starts service.Good luck.

    References:
    doityourselfandroid.com

    helloandroid.com

    0 讨论(0)
  • 2020-12-15 18:37
    Intent inet = new Intent(your_action);
    inet.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    PendingIntent pIntentNetworkInfo = PendingIntent.getActivity(context, 2, 
                inet, Intent.FLAG_ACTIVITY_NEW_TASK);
    remoteViews.setOnClickPendingIntent(you_component_when_the_user_pressing_this_activity_should_start, pIntentNetworkInfo);
    
    0 讨论(0)
  • 2020-12-15 18:38

    I don't know about "Creating widget from another widget". This is out of my knowledge but I suggest you to build your own widget.

    Apart from that, calling activity from widget should be using PendingIntent

    Here is simple example to do it

    Intent iSetting = new Intent(this, MyConfig.class);
    PendingIntent piSetting = PendingIntent.getActivity(this, 0, iSetting, 0);
    views.setOnClickPendingIntent(R.id.IdComponent, piSetting);
    

    Or you might need to see this link and this link

    0 讨论(0)
提交回复
热议问题