Java 片段中的文本视图不改变颜色
我正在尝试更改活动片段中文本视图的文本颜色,但由于此错误,没有任何更改:Java 片段中的文本视图不改变颜色,java,android,xml,android-fragments,Java,Android,Xml,Android Fragments,我正在尝试更改活动片段中文本视图的文本颜色,但由于此错误,没有任何更改: Cannot find symbol method findViewById(int) 我能做些什么来解决这个问题 XML 爪哇 导入android.os.Bundle; 导入android.support.annotation.Nullable; 导入android.support.v4.app.Fragment; 导入android.text.Html; 导入android.view.LayoutInflater
Cannot find symbol method findViewById(int)
我能做些什么来解决这个问题
XML
爪哇
导入android.os.Bundle;
导入android.support.annotation.Nullable;
导入android.support.v4.app.Fragment;
导入android.text.Html;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.TextView;
公共类TabWCBankTerminus扩展片段{
@凌驾
创建视图时的公共视图(LayoutFlater充气机、@Nullable ViewGroup容器、@Nullable Bundle savedInstanceState){
视图v=充气机。充气(右侧布局选项卡\厕所\气缸组\终端,容器,错误);
返回v;
TextView txt=(TextView)findViewById(R.id.WCBank\u textView1);
txt.setText(Html.fromHtml(“text0”)+
“文本1”+
“文本2”+
“文本3”
));
}
}
片段
没有定义findViewById()
方法,您需要使用视图
对象(v
)来调用它。
这背后的原因是,片段在膨胀之前对布局一无所知。您正在扩展布局并返回一个视图对象,该对象包含有关您试图配置的内容的信息,因此您需要在视图
对象上调用该方法,而不是片段
改为:
TextView txt = (TextView)v.findViewById(R.id.WCBank_textView1);
然后在方法的最后,而不是在进行配置更改之前,返回v
完成后应该是这样的:
public class TabWCBankTerminus extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v =inflater.inflate(R.layout.tab_wc_bank_terminus,container,false);
TextView txt = (TextView)v.findViewById(R.id.WCBank_textView1);
txt.setText(Html.fromHtml("<font color='#FFD300'>text0</font>" +
"<font color='#00A4A7'> text1</font>" +
"<font color='#E32017'> text2</font>" +
"<font color='#FFFFFF'> text3</font>"
));
return v;
}
}
公共类TabWCBankTerminus扩展片段{
@凌驾
创建视图时的公共视图(LayoutFlater充气机、@Nullable ViewGroup容器、@Nullable Bundle savedInstanceState){
视图v=充气机。充气(右侧布局选项卡\厕所\气缸组\终端,容器,错误);
TextView txt=(TextView)v.findViewById(R.id.WCBank_textView1);
txt.setText(Html.fromHtml(“text0”)+
“文本1”+
“文本2”+
“文本3”
));
返回v;
}
}
在您的onCreateView
中有两个错误。首先,在本例中,返回语句必须是最后一个语句,否则后面的语句将无法访问。其次,您必须通过v
调用findViewById
。与Activity
不同,Fragment没有findViewById
方法
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v =inflater.inflate(R.layout.tab_wc_bank_terminus,container,false);
TextView txt = (TextView)v.findViewById(R.id.WCBank_textView1);
txt.setText(Html.fromHtml("<font color='#FFD300'>text0</font>" +
"<font color='#00A4A7'> text1</font>" +
"<font color='#E32017'> text2</font>" +
"<font color='#FFFFFF'> text3</font>"
));
return v;
}
@覆盖
创建视图时的公共视图(LayoutFlater充气机、@Nullable ViewGroup容器、@Nullable Bundle savedInstanceState){
视图v=充气机。充气(右侧布局选项卡\厕所\气缸组\终端,容器,错误);
TextView txt=(TextView)v.findViewById(R.id.WCBank_textView1);
txt.setText(Html.fromHtml(“text0”)+
“文本1”+
“文本2”+
“文本3”
));
返回v;
}
public class TabWCBankTerminus extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v =inflater.inflate(R.layout.tab_wc_bank_terminus,container,false);
TextView txt = (TextView)v.findViewById(R.id.WCBank_textView1);
txt.setText(Html.fromHtml("<font color='#FFD300'>text0</font>" +
"<font color='#00A4A7'> text1</font>" +
"<font color='#E32017'> text2</font>" +
"<font color='#FFFFFF'> text3</font>"
));
return v;
}
}
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v =inflater.inflate(R.layout.tab_wc_bank_terminus,container,false);
TextView txt = (TextView)v.findViewById(R.id.WCBank_textView1);
txt.setText(Html.fromHtml("<font color='#FFD300'>text0</font>" +
"<font color='#00A4A7'> text1</font>" +
"<font color='#E32017'> text2</font>" +
"<font color='#FFFFFF'> text3</font>"
));
return v;
}