Android 如何在AppWidgetProvider类中使用OnClickListener方法
单击小部件时,我需要执行更多操作,使用此代码,onclick操作仅打开一个活动,是否可以添加onclick侦听器,以便在活动打开之前添加更多代码和操作,如在活动中运行? 这是我的密码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
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);
}
}