gpt4 book ai didi

android - 以编程方式将 TextView 添加到主屏幕小部件

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

我想以编程方式将 TextView 控件添加到我的主屏幕小部件。在下面的示例中,我使用 TextViews 填充了 Linearlayout,但是我应该如何在这里使用 RemoteViews?它只接受 xml 资源布局作为参数。

public class MyWidget extends AppWidgetProvider {
public void onUpdate(Context _context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {

LinearLayout l = new LinearLayout(_context);

for (int i = 0; i < 10; i++) {
TextView t = new TextView(_context);
t.setText("Hello");
l.addView(t);
}
}
}

我看到的所有教程都使用其预定义控件的值明确填充 RemoteViews 对象。我想以编程方式添加控件。

RemoteViews views = new RemoteViews(context.getPackageName(),
R.layout.my_widget);
views.setTextViewText(R.id.widget_control1, value1);
views.setTextViewText(R.id.widget_control2, value2);

最佳答案

在寻找我自己的答案时偶然发现了这个问题,虽然这不能回答我的问题,但我想我会回答这个问题。

假设您的小部件已经有一个布局文件 test.xml

现在,创建一个新布局,保存例如到 text_view_layout.xml。在那个布局 xml 中有这个作为它的内容:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:textAppearance="?android:attr/textAppearanceLarge" />

您现在刚刚创建了一个布局,其 Root View 是一个 TextView 。

现在在您的代码中,您可以像这样向该 TextView 添加文本:

RemoteViews update = new RemoteViews(getPackageName(), R.layout.test);
for(int i = 0; i < 3; i++) {
RemoteViews textView = new RemoteViews(getPackageName(), R.layout.text_view_layout);
textView.setTextViewText(R.id.textView1, "TextView number " + String.valueOf(i));
update.addView(R.id.linearLayout1, textView);
}

mAppWidgetManager.updateAppWidget(mAppWidgetId, update);

现在您刚刚创建了三个 TextView ,文本均为“TextView number 0”等等...

我敢肯定在其他地方也有类似的答案,但这是以编程方式将 textView 添加到 appWidget 的方法。

RemoteViews API

关于android - 以编程方式将 TextView 添加到主屏幕小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9266710/

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