无法从类型Activity错误中对非静态方法findViewById(int)进行静态引用

0 android android-fragments

嗨即时通讯在eclipse上制作一个计算器,我正在按照这个教程完成所有内容,就像在视频中一样,但由于某些原因我得到这个"无法从类型活动中对静态方法findViewById(int)进行静态引用"错误

public PlaceholderFragment() {

    int counter;
    Button add, sub;
    TextView display;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_main, container, false);
        counter = 0;
        add = (Button) findViewById(R.id.bAdd);
        sub = (Button) findViewById(R.id.bSub);
        display = (TextView) findViewById(R.id.tvDisplay);
        add.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                counter += 1;
                display.setText("Your total is " + counter);
            }
        });
        sub.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                counter -= 1;
                display.setText("Your total is " + counter);
            }
        });

        return rootView;
    }
}
Run Code Online (Sandbox Code Playgroud)

mat*_*ash 5

这个Fragment班没有findViewById()方法; 但是Activity确实如此.编译器抱怨,因为这个Fragment是一个Activity的静态内部类,所以它认为你试图调用该方法.

如果您尝试从Fragment布局获取视图,请更改findViewById()rootView.findViewById().

如果您尝试从"活动"布局中获取视图,请将其更改为getActivity().findViewById().

(这取决于bAdd按钮的实际位置).