6

我得到错误

对于 PM_section 类型,方法 findViewById(int) 未定义

尝试实现我的可扩展列表视图时。我确信这是一个常见错误,但我无法找到解决方案。我正在尝试学习碎片等,从我开始就一直是一场艰苦的战斗。我进行了相当多的搜索,发现了很多结果,这似乎对我的情况没有帮助。

如果有人能给我任何见解,或者指出我正确的方向,我将不胜感激。

我的小测试班在下面

public class PM_section extends Fragment {
//  CustomExpListView custExpListView;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        View V = inflater.inflate(R.layout.fragment_pm_section_test, container, false);

        CustomExpListView custExpListView = (CustomExpListView)
                this.findViewById(R.id.ExpandableListView01);
        return V;   
    }// end on create
}

CustomExpListView 类几乎是从 Android 示例项目中复制而来的,并且很高兴并且没有问题。

谢谢你帮助我。

4

2 回答 2

10

如果R.id.ExpandableListView01是 的一部分R.layout.fragment_pm_section_test,则替换thisV

CustomExpListView custExpListView = (CustomExpListView)
                V.findViewById(R.id.ExpandableListView01);

Fragments 没有findViewById()方法。你需要使用你的 inflatedView来从你的布局中获取所有内容。

还可以考虑使用 Java 命名约定。变量以小写字母开头,而类以大写字母开头。

于 2013-01-21T22:37:35.180 回答
3

getView()只需调用然后调用findViewById()方法即可获取片段的根视图:

getView().findViewById(R.id.ExpandableListView01);

没有它,您将无法使用findViewById(),因为Fragment类本身没有这种方法。

于 2013-01-21T22:39:58.873 回答