我想在点击按钮时将"Foo"
添加到表格中。所以这就是我在OnClickListener中所做的事情:
textView
我还想为此动态创建的todoTable.addView(new TextView(this));
添加属性,如文本内容或背景。那我该怎么办? Android Studio说有一个像这样的构造函数
TextView
我可以在AttributeSet参数中包含哪些内容来为TextView提供值,例如“Hello World!”?
答案 0 :(得分:4)
执行类似这样的操作,创建一个返回TextView的方法,您也可以设置文本。一种更简单的方法是仅创建文本视图布局,而只是重用它。 AttributeSet主要用于创建自定义视图并需要添加更多属性时。
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);
}
答案 1 :(得分:0)
你可以这样做
TextView tv = new TextView(getContext());
tv.setText("text");
FrameLayout.LayoutParams tP = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
tP.setMargins(1, 2, 3, 4);
tP.gravity = (Gravity.CENTER | Gravity.TOP);
tv.setLayoutParams(tP);
答案 2 :(得分:-3)
您可以将新的TextView设置为变量,然后使用“setText”方法:
TextView textView = new TextView(this);
textView.setText("Hello World!");
有许多方法可供使用,包括“setBackgroundResource”。在这里查看它们:http://developer.android.com/reference/android/widget/TextView.html