我目前正在研究android项目并试图让片段正常工作。片段部分正在工作,但我正在尝试控制UI组件,在标准活动上我可以使用类似
的东西TextView txtMyTextBox = (TextView)findViewById(R.id.my_text_box)
我正在通过ListFragment扩展该类,但是为什么我尝试使用与上面相同的代码时出现以下错误
方法findViewById(int)未定义
为什么这不起作用。感谢您的任何帮助,您可以提供。
答案 0 :(得分:5)
这个方法没有在Fragment类中定义,我假设你正在调用它。您必须在片段显示的视图上使用它。这与您在onCreateView()
中返回的视图相同,您可以通过getView()
检索该视图。因此,TextView txtMyTextBox = (TextView)getView().findViewById(R.id.my_text_box)
应该有用。
答案 1 :(得分:0)
使用片段时,应覆盖onCreateView方法。
这是一个例子:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View v = inflater.inflate(R.layout.YOUR_FRAGMENT_LAYOUT, null);
TextView txtMyTextBox = (TextView)v.findViewById(R.id.my_text_box)
return v;
}