在 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

不要在 ListFragment 中显示 Arraylist 的列表视图

我无法从 ListFragment 内的 onListItemClick 开始新活动