先决条件:如何创建Android应用程序的基本小部件?
小部件是应用程序提供的UI元素,用于从主屏幕或锁定屏幕远程访问其某些功能。小部件可以是静态或动态的,这意味着显示元素不会随时间变化(静态)或变化(动态)。通过本文,我们来演示Dynamic Widget的实现。在我们的例子中,我们将使用Thread根据时间更改显示。这是相同的预览:
创建动态窗口小部件的步骤
步骤1:创建一个新项目
要在Android Studio中创建新项目,请参阅如何在Android Studio中创建/启动新项目。请注意,选择Kotlin作为编程语言。
步骤2:将App小部件添加到项目中
- 右键单击该应用程序,将光标移动到new ,最后找到“ Widget ”选项,然后选择它。
- 指定小部件的必需属性,例如min.width和height ,配置文件和首选语言等,然后继续。文件是自动生成的。
步骤3:要编程什么?在哪里编程?
- 在我们的应用程序中,由于我们希望同时显示两个消息“ Just do it ”和“ You are awesome ”(用户可以选择自己的消息),因此,我们将实现一个线程来生成暂停(1个)第二)之间。
- 整个编程(后端)都在新创建的NewAppWidget.kt (主源文件夹中的Kotlin类文件)中完成。
仅对 NewAppWidget.kt文件
NewAppWidget.kt
package org.geeksforgeeks.widget_dynamic
import android.appwidget.AppWidgetManager
import android.appwidget.AppWidgetProvider
import android.content.Context
import android.content.Intent
import android.widget.RemoteViews
// Implementation of App Widget functionality
class NewAppWidget : AppWidgetProvider() {
override fun onUpdate(
context: Context,
appWidgetManager: AppWidgetManager,
appWidgetIds: IntArray
) {
// There may be multiple widgets active, so update all of them
for (appWidgetId in appWidgetIds) {
updateAppWidget(context, appWidgetManager, appWidgetId)
}
}
// Enter relevant functionality for
// when the first widget is created
override fun onEnabled(context: Context) {
}
// Enter relevant functionality for
// when the last widget is disabled
override fun onDisabled(context: Context) {
}
}
internal fun updateAppWidget(
context: Context,
appWidgetManager: AppWidgetManager,
appWidgetId: Int
)
/////////////////////////Add functionality here ///////////////////////////////
{
Thread(Runnable {
while(true){
// Construct the RemoteViews object
val views = RemoteViews(context.packageName, R.layout.new_app_widget)
views.setTextViewText(R.id.appwidget_text, "Just do it")
// Instruct the widget manager to update the widget
appWidgetManager.updateAppWidget(appWidgetId, views)
Thread.sleep(1000)
// Construct the RemoteViews object
views.setTextViewText(R.id.appwidget_text, "You are awesome")
// Instruct the widget manager to update the widget
appWidgetManager.updateAppWidget(appWidgetId, views)
Thread.sleep(1000)
}
}).start()
}
////////////////////////////////////////////////////////////////////////////////////
就是这样,运行代码,您将在Widgets列表中看到此Widget,并将其带到主屏幕。
输出:在模拟器上运行
想要一个节奏更快,更具竞争性的环境来学习Android的基础知识吗?
单击此处前往由我们的专家精心策划的指南,以使您立即做好行业准备!