我正在实现一个小部件功能,遇到了一个问题。我试图通过在小部件中创建的按钮启动一个特定片段,但它无法通过Intent
执行此操作。如何在小部件中启动一个片段?
应用程序小部件提供程序
class WidgetProvider : AppWidgetProvider() {
override fun onUpdate(context: Context?, appWidgetManager: AppWidgetManager?, appWidgetIds: IntArray?) {
super.onUpdate(context, appWidgetManager, appWidgetIds)
appWidgetIds?.forEach { appWidgetId ->
val views: RemoteViews = addViews(context)
appWidgetManager?.updateAppWidget(appWidgetId, views)
}
}
private fun setMyAction(context: Context?): PendingIntent {
val intent = Intent(context, MainFragment::class.java)
return PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)
}
private fun buildURIIntent(context: Context?): PendingIntent {
val intent = Intent(Intent.ACTION_VIEW).setData(Uri.parse("https://www.google.com/"))
return PendingIntent.getActivity(context, 0, intent, 0)
}
private fun addViews(context: Context?): RemoteViews {
val views = RemoteViews(context?.packageName, R.layout.widget)
views.setOnClickPendingIntent(R.id.button, setMyAction(context))
views.setOnClickPendingIntent(R.id.button2, buildURIIntent(context))
return views
}
}
1条答案
按热度按时间6ovsh4lw1#
我发现它不能通过导航/意图从非碎片移动到碎片。经过长时间的搜索,我没有找到任何结果,但我通过使用深度链接解决了这个问题。
在这里我附上了我的代码给任何有需要的人。
小部件到片段