在最小 API 17 中将文本外观更改为表格布局中动态添加的行的媒介



单击按钮 btn1 时,将添加一行。我想将其文本外观更改为中

错误集文本外观无法应用

btn1.setOnClickListener(new View.OnClickListener() {
                                            @Override
                                            public void onClick(View v) {

                                                    TableRow row1 = new TableRow(create_form.this);
                                                    TextView txt1 = new TextView(create_form.this);
                                                    EditText edttxt1 = new EditText(create_form.this);
                                                    txt1.setText("Topic");
                                                    txt1.setTextColor(Color.parseColor("#000000"));
                                                     txt1.setTextAppearance(android.R.style.TextAppearance_Medium);**//ERROR ,NOT WORKING**,Call requires API level23(current min is 17)


                                                    row1.addView(txt1);
                                                    row1.addView(edttxt1);
                                                    t1.addView(row1);
                                                }
                                            }

                });

在 API 级别 23 以下,请使用以下命令:

txt1.setTextAppearance(this, android.R.style.TextAppearance_Medium);

从 API 23 开始,您无需传递上下文参数。因此,您可以简单地调用:

txt1.setTextAppearance(android.R.style.TextAppearance_Medium);

或者,除了 Rohit Sharma 的响应之外,您还可以为 textViews 定义自定义样式并以编程方式设置它们,这样 '假设你的风格是这样的:

<style name="MyStyle" parent="@android:style/Widget.TextView">
    <item name="android:textStyle">bold</item>
     <item name="android:textAppearance">?android:textAppearanceSmall</item>
     <item name="android:typeface">sans</item>
     <item name="android:textColor">@android:color/white</item>
    ...
</style>
TextView textViewTitle = (TextView) findViewById(R.id.text_view_title); // Your TextView
textViewTitle.setTextAppearance(this, R.style.MyStyle);

好处是您可以设置其他重要属性,如文本大小,字体,文本颜色,...只需对 .设置文本外观方法

找到了它的替代解决方案-

而不是更改文本外观,将字体大小更改为 txt1.setTextSize(TypedValue.COMPLEX_UNIT_SP,18(;

18sp=中等文本外观。

最新更新