android–Widget双击

android–Widget双击,第1张

概述我有一个小部件(AppWidgetProvider),我想知道是否有一种方法来支持多次点击.例如:1)如果是第一次单击窗口小部件,则窗口小部件的ImageButton会更改(例如,更改颜色).2)如果是第二次,则打开一个活动.–有一些方法可以处理AppWidgetProvider中的点击事件吗?我的代码:publicclass

我有一个小部件(appwidgetprovider),我想知道是否有一种方法来支持多次点击.例如:

1)如果是第一次单击窗口小部件,则窗口小部件的Imagebutton会更改(例如,更改颜色).

2)如果是第二次,则打开一个活动.

– 有一些方法可以处理appwidgetprovider中的点击事件吗?

我的代码:

public class MyWidgetProvIDer extends appwidgetprovider{    @OverrIDe    public voID onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIDs) {        final int N = appWidgetIDs.length;        for (int i=0; i<N; i++) {            int appWidgetID = appWidgetIDs[i];                Intent intent = new Intent(context, MyActivity.class);            PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);            RemoteVIEws vIEws = new RemoteVIEws(context.getPackagename(), R.layout.control_Widget);            vIEws.setonClickPendingIntent(R.ID.asdf, pendingIntent);             appWidgetManager.updateAppWidget(appWidgetID, vIEws);        }        }}

我的小部件工作正常.当我单击Imagebutton(R.ID.asdf)时,它将转到活动MyActivity.

我想知道如何处理我的小部件上的点击事件以进行不同的 *** 作(例如:更改Imagebutton的颜色)而不是去某些活动.除了setonClickPendingIntent()之外还有其他一些点击句柄吗?

解决方法:

也许这可能有所帮助.这个对我有用:

public class WidgetProvIDer extends appwidgetprovider {private static final int DOUBLE_CliCK_DELAY = 500;@OverrIDepublic voID onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIDs) {    RemoteVIEws vIEws = new RemoteVIEws(context.getPackagename(), R.layout.Widget);    Intent intent = new Intent(context, getClass());    intent.setAction("Click");    PendingIntent pendingIntent = PendingIntent.getbroadcast(context, 0, intent, 0);    vIEws.setonClickPendingIntent(R.ID.image, pendingIntent);    appWidgetManager.updateAppWidget(appWidgetIDs, vIEws);    context.getSharedPreferences("Widget", 0).edit().putInt("clicks", 0).commit();}@OverrIDepublic voID onReceive(final Context context, Intent intent) {    if (intent.getAction().equals("Click")) {        int clickCount = context.getSharedPreferences("Widget", Context.MODE_PRIVATE).getInt("clicks", 0);        context.getSharedPreferences("Widget", Context.MODE_PRIVATE).edit().putInt("clicks", ++clickCount).commit();        final Handler handler = new Handler() {            public voID handleMessage(Message msg) {                int clickCount = context.getSharedPreferences("Widget", Context.MODE_PRIVATE).getInt("clicks", 0);                if (clickCount > 1) Toast.makeText(context, "doubleClick", Toast.LENGTH_SHORT).show();                else Toast.makeText(context, "singleClick", Toast.LENGTH_SHORT).show();                context.getSharedPreferences("Widget", Context.MODE_PRIVATE).edit().putInt("clicks", 0).commit();            }        };        if (clickCount == 1) new Thread() {            @OverrIDe            public voID run(){                try {                    synchronized(this) { wait(DOUBLE_CliCK_DELAY); }                    handler.sendEmptyMessage(0);                } catch(InterruptedException ex) {}            }        }.start();    }    super.onReceive(context, intent);}

}

总结

以上是内存溢出为你收集整理的android – Widget双击全部内容,希望文章能够帮你解决android – Widget双击所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1114024.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存