Android 如何在AppWidgetProvider类中使用OnClickListener方法

Android 如何在AppWidgetProvider类中使用OnClickListener方法,android,android-widget,Android,Android Widget,单击小部件时,我需要执行更多操作,使用此代码,onclick操作仅打开一个活动,是否可以添加onclick侦听器,以便在活动打开之前添加更多代码和操作,如在活动中运行? 这是我的密码 public class WidgetActivity extends AppWidgetProvider{ @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWi

单击小部件时,我需要执行更多操作,使用此代码,onclick操作仅打开一个活动,是否可以添加onclick侦听器,以便在活动打开之前添加更多代码和操作,如在活动中运行? 这是我的密码

public class WidgetActivity extends AppWidgetProvider{

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

    super.onUpdate(context, appWidgetManager, appWidgetIds);
    for (int i = 0; i < appWidgetIds.length; i++) {
        int appWidgetId = appWidgetIds[i];


        Intent int1=new Intent();
        int1.setClass(context, Splash.class);

        PendingIntent pend1=PendingIntent.getActivity(context, 0, int1, 0);

        RemoteViews view1=new RemoteViews(context.getPackageName(),
                R.layout.widget_main_1);

        view1.setOnClickPendingIntent(R.id.repClear, pend1);
        appWidgetManager.updateAppWidget(appWidgetId, view1);

        }
}
公共类WidgetActivity扩展了AppWidgetProvider{
@凌驾
public void onUpdate(上下文上下文,AppWidgetManager AppWidgetManager,
int[]appWidgetIds){
onUpdate(上下文、appWidgetManager、AppWidgetId);
for(int i=0;i
}

当我点击图1上的图标时,我想这样做,然后像图2一样在图标上绕6圈。请帮帮我

我需要执行更多的操作时,小部件被点击,与此 编码onclick操作仅打开活动,是否可以添加 onClickListener,我可以在其中添加更多代码和操作,如 活动开始前要运行的活动

在实际场景中,当您单击元素时,您正在调用活动。如果要执行更多不同的操作,则必须调用广播而不是活动:

// calling Intent on your widget
Intent i = new Intent(context, WidgetActivity.class);           
i.setAction("your.intent.filter.action.name"); // assign intent action
int flag = PendingIntent.FLAG_UPDATE_CURRENT;
PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, flag);
view1.setOnClickPendingIntent(R.id.repClear, pi);
然后您需要在小部件中实现
onReceive()
方法:

@Override
public void onReceive(Context context, Intent intent) {
    super.onReceive(context, intent);
    if (intent.getAction().equals("your.intent.filter.action.name")) {
       // do your stuff
    }
}
其他悬挂式帐篷也类似

更新: 示例如何更新小部件(您几乎可以在任何地方显式调用它):

呼叫:

@Override
public void onReceive(Context context, Intent intent) {
    super.onReceive(context, intent);

    if (intent.getAction().equals("your.intent.filter.action.name")) {
       updateWidget(context, false);
    }

    if (intent.getAction().equals("your.another.intent.filter.action.name")) {
       updateWidget(context, true);
    }
}

我可以这样做吗?”public void onReceive(Context Context,Intent Intent){super.onReceive(Context,Intent);if(Intent.getAction().equals(“your.Intent.filter.action.name”){//do your stuff ImageButton img=(ImageButton)findViewById(R.id.imageButton1);img.setVisibility(View.GONE);ImageButton img1=(ImageButton)findViewById(R.id.imageButton2);img.setVisibility(View.GONE);}}}'如果图像在小部件布局(remoteView)中,您可以这样做,但您需要执行小部件的更新,因此创建例如静态方法并更新小部件(类似于
onUpdate()
方法)所有的东西都可以在布局。但我不知道我如何处理它。如果你给我一些代码,我将非常感谢你。请sir@Gauravkumar您阅读了我为您的?:)编写的所有内容了吗?在onReceive()方法中,您需要调用它。答案已更新。看看。@Gauravkumar欢迎您。所以,如果它有效的话,你们能接受一个有效的答案吗?
@Override
public void onReceive(Context context, Intent intent) {
    super.onReceive(context, intent);

    if (intent.getAction().equals("your.intent.filter.action.name")) {
       updateWidget(context, false);
    }

    if (intent.getAction().equals("your.another.intent.filter.action.name")) {
       updateWidget(context, true);
    }
}