【问题标题】:@override error showing up in .xml file@override 错误出现在 .xml 文件中
【发布时间】:2014-09-14 07:43:58
【问题描述】:

我刚刚将我的 onCreatView 按钮从我的 activity_main.java 文件移动到正确的文件 - 我的 ConvertFragment.java 文件。

现在我已经复制并粘贴了代码,我的所有 findViewById's 上都出现了 red-x 错误...有什么想法吗?

提前致谢!

public class ConvertFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_convert, container, false);
        final EditText editDecimal = (EditText) findViewById(R.id.editDecimal);
        final EditText editBinary = (EditText) findViewById(R.id.editBinary);
        Button buttonConvert = (Button) findViewById(R.id.buttonConvert);
        buttonConvert.setOnClickListener(new OnClickListener() {

            public void onClick(View arg0) {
                int decimal = Integer.valueOf(editDecimal.getText().toString());
                editBinary.setText(Integer.toBinaryString(decimal));
            }
        });
        return rootView;
    }
}

【问题讨论】:

    标签: java android eclipse android-logcat


    【解决方案1】:

    这是因为片段没有方法findViewById()

    您可以在您的活动中调用该方法:

    getActivity().findViewById()
    

    或者只是使用您刚刚膨胀的布局并在其中找到视图:

    rootView.findViewById()
    

    第二个更好(IMO),因为它不依赖于活动。

    【讨论】:

    • 还有,先生,我爱!谢谢!
    • 我会远离第一种方法。作为一个练习:想象一下,如果您开始在一个活动中使用多个相同片段的实例会发生什么......或者一个活动包含声明相同视图 ID 的不同片段。
    • @MH。很好的例子!回答时没有考虑他们。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多