gpt4 book ai didi

java - 如何将 AttributeSet 动态添加到 TextView?

转载 作者:太空宇宙 更新时间:2023-11-03 10:18:03 25 4
gpt4 key购买 nike

我想在单击按钮时将 textView 添加到表格中。所以这就是我在 OnClickListener 中所做的事情:

todoTable.addView(new TextView(this));

我还想向这个动态创建的 TextView 添加属性,例如文本内容或背景。那我该怎么做呢? Android Studio 说要有这样的构造函数

new TextView(Context context, AttributeSet attrs)

我可以在 AttributeSet 参数中包含什么来为 TextView 赋值,例如“Hello World!”?

最佳答案

做这样的事情,创建一个返回 TextView 的方法,你也可以设置你的文本。一种更简单的方法是只创建一个 TextView 布局,然后重用它。 AttributeSet 主要用于创建自定义 View 并需要添加更多属性。

public TextView createTextView(String text) {
String attributes =
"<attribute xmlns:android=\"http://schemas.android.com/apk/res/android\" " +
"android:layout_width=\"match_parent\" android:layout_height=\"wrap_content\" android:padding=\"10dp\" " +
"android:background=\"@drawable/list_selector_background\" android:clickable=\"true\" " +
"android:textAppearance = \"@android:style/TextAppearance.Medium\" android:textColor = \"@color/text_colors\" " +
"android:text=\"" + text + "\" android:gravity = \"left\" " + "\"/>";

XmlPullParserFactory factory = null;
try {
factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser parser = factory.newPullParser();
parser.setInput(new StringReader(attributes));
parser.next();
AttributeSet attrs = Xml.asAttributeSet(parser);
return new TextView(this, attrs);
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return new TextView(this);
}

关于java - 如何将 AttributeSet 动态添加到 TextView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31967259/

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