我想知道为什么家庭小部件只显示最后一个数组的文本?如何使内容作为列表?谢谢帮助
这是我XML布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="8dp"
android:orientation="vertical"
android:background="@drawable/widget_background"
android:padding="8dp"
android:id="@+id/widget_container">
<TextView
android:id="@+id/widget_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="15sp"
android:textStyle="bold"
tools:text="Title" />
<TextView
android:id="@+id/widget_message"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="12sp"
tools:text="Message" />
</LinearLayout>
这是Kotlin提供程序
val cars = arrayOf("Volvo", "BMW", "Ford", "Mazda")
for (i in cars){
val message = widgetData.getString("message", null)
setTextViewText(R.id.widget_message, message
?: i)
val pendingIntentWithData = HomeWidgetLaunchIntent.getActivity(
context,
MainActivity::class.java,
Uri.parse("homeWidgetExample://message?message=$message"))
setOnClickPendingIntent(R.id.widget_message, pendingIntentWithData)
}
}
appWidgetManager.updateAppWidget(widgetId, views)
}
该屏幕截图
2条答案
按热度按时间wswtfjt71#
不幸的是,您不能循环布局视图并期望它重复。当您循环数组并将文本设置为TextView时,它将依次设置所有这些值,并以显示最后一个元素结束。如果您希望显示数组中的所有值,您应该使用RecyclerView而不是TextView,并将数组传递给RecyclerView的适配器。
3z6pesqy2#
在活动XML布局中插入recyclerView
然后创建另一个XML布局并将其命名为home_item.xml
下一步是为RecyclerView创建一个适配器。
在活动类上OnCreate()
请确定您已先实作recyclerView