gpt4 book ai didi

android - 小部件 setOnClickPendingIntent

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:38:08 26 4
gpt4 key购买 nike

所以,我很难弄清楚如何让我的应用程序小部件按照我想要的方式工作,或者如果可能的话。

Widget 有一个 ImageView,我给它分配了一个 setOnClickPendingIntent。但是,我想要完成的基本上只是实例化一个类并在用户点击应用程序小部件中的 ImageView 时调用该类中的方法。但是,我怎样才能让 PendingIntent 做一些事情而不只是启动一个 Activity 呢?不确定这是否有意义,但我非常感谢您的帮助。

           // Create an Intent to launch MainActivity
Intent intent = new Intent(context, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
/**
/* However, I want to simply do something like this
/* MyClass mc = new MyClass(context);
/* mc.toggleEnable();
*/

// Get the layout for the App Widget and attach an on-click listener
// to the button
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_layout);
views.setOnClickPendingIntent(R.id.imageViewWidgetToggle, pendingIntent);

最佳答案

您可以使用 PendingIntent.getBroadcast,它将在您的 AppWidgetProvider 类中接收:

Intent intent = new Intent(context, YourAppWidgetProvider.class);
intent.setAction("use_custom_class");
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
views.setOnClickPendingIntent(R.id.imageViewWidgetToggle, pendingIntent);

然后在 AppWidgetProvider 中:

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

String action = intent.getAction();
String actionName = "use_custom_class";

if (actionName.equals(action)) {
MyClass mc = new MyClass(context);
mc.toggleEnable();
}
}

看看the docs about PendingIntent有关要使用的标志的详细信息。我希望我正确理解了您的问题并且我的回答对您有意义 :) 如果没有,请不要犹豫让我知道...

关于android - 小部件 setOnClickPendingIntent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21715168/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com