【发布时间】:2018-07-13 14:54:47
【问题描述】:
我搜索了又搜索,但无论出于何种原因,我似乎都无法让它工作。
我目前正在做的是我有一个配置类,我在其中根据微调器上的选定项目创建 x 数量的 TextView,我也想设置它们的文本。所以我不能只在 .xml 文件中创建这些 TextView,我必须在运行时创建它们,因为直到那时我才知道需要多少。 这些 TextView 必须添加到小部件中,以便在按下配置类的添加小部件按钮时创建小部件时显示它们。我想将文本视图添加到我的小部件垂直线性布局中,该布局包含在相对布局内的水平线性布局中。
到目前为止,我已经能够创建 TextViews 并设置正确的文本,但无论我尝试如何尝试,我都无法弄清楚如何将它们添加到小部件中,以便实际显示它们。我试过膨胀小部件布局,获取 id 并添加它们,试图用 RemoteViews 鬼混,因为我意识到这是一个小部件,这就是它应该如何完成的。似乎没有什么让他们想要添加,即使我只是尝试从代码创建 1 个 TextView 也是如此。我只是无法让它显示自己和我给它的 setText。
我正在使用 android 2.2 顺便说一句,这是我的第一个 android 应用程序/小部件,所以请不要太残忍,因为我在某个地方犯了一个愚蠢的错误......
如果您需要代码示例以便更好地帮助我,请让我知道,稍后再尝试添加。现在我在无法访问代码的计算机上寻求帮助:)
非常感谢您抽出宝贵时间阅读本文!希望有人能告诉我我必须做什么才能完成这项工作。或者它是否可能:S /克里斯
编辑:
这是我试图让它工作的事情之一,但我想这不起作用,因为我正在使用一个小部件,我应该使用远程视图并以某种方式完成它?从我读过的东西来看,远程视图似乎只适用于 xml 生成的代码。如果情况确实如此,那么我将如何创建文本视图并将其添加到我的小部件? :S
//the context c is defined as this, elsewhere:
c = WidgetConfig.this;
public void createPopulateTable(RemoteViews rv){
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.widget, null);
LinearLayout vll1 = (LinearLayout)layout.findViewById(R.id.wVertLinearL1);
// Create a TextView for the left column
TextView wLabelTv = new TextView(c);
wLabelTv.setId(200);
wLabelTv.setTextColor(Color.BLACK);
wLabelTv.setLayoutParams(new LayoutParams(
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
wLabelTv.setText("No Classes Today");
vll1.addView(wLabelTv);
}
【问题讨论】:
-
我已经按照这些思路做了一些事情,但这不是问题 atm。问题是,即使我只创建一个新的文本视图,也要将其添加到小部件中,以便实际显示。稍后,我将在上面的问题中添加我尝试过的事情之一的示例。感谢您尝试提供帮助! :) 非常感谢
标签: android dynamic android-linearlayout textview android-appwidget