在 ListFragment 中无法识别 findViewById [重复]
Posted
技术标签:
【中文标题】在 ListFragment 中无法识别 findViewById [重复]【英文标题】:findViewById not recognised in ListFragment [duplicate] 【发布时间】:2012-09-01 17:19:45 【问题描述】:可能重复:findViewById in fragment android
我目前正在开发 android 项目并试图让片段工作。片段部分正在工作,但我正在尝试控制 UI 组件,在标准活动上我可以使用类似
TextView txtMyTextBox = (TextView)findViewById(R.id.my_text_box)
我正在通过 ListFragment 扩展类,但是当我尝试与上面相同的代码时,我收到以下错误
findViewById(int) 方法未定义
为什么这不起作用。感谢您的任何帮助,您可以提供。
【问题讨论】:
【参考方案1】:该方法未在 Fragment 类中定义,我假设您正在调用它。您必须在片段显示的视图上使用它。这与您在onCreateView()
中返回的视图相同,您可以通过getView()
检索它。因此,TextView txtMyTextBox = (TextView)getView().findViewById(R.id.my_text_box)
应该可以工作。
【讨论】:
【参考方案2】:当你使用片段时,你应该重写 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;
【讨论】:
以上是关于在 ListFragment 中无法识别 findViewById [重复]的主要内容,如果未能解决你的问题,请参考以下文章
viewpager 内无法解释的 ListFragment 行为
Android Studio 中的 ListFragment
如何在 DialogFragment 中显示现有的 ListFragment
无法覆盖 ListFragment 中的 onCreateOptionsMenu