我无法在 Android 中更改片段的背景颜色

I Cannot Change Background Color of Fragment in Android

我想更改片段的背景颜色。但是当我点击按钮时没有任何反应。

在我的主要 activity 布局 XML 文件中,我导入了片段。

这是我的代码:

public class Top_Fragment extends Fragment implements View.OnClickListener {
    Button button;
    LinearLayout mLinearLayout;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.top_fragment, container, false);
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        button = (Button) getActivity().findViewById(R.id.button);
        mLinearLayout = (LinearLayout) getActivity().findViewById(R.id.layout);
    }

    @Override
    public void onClick(View v) {
        mLinearLayout.setBackgroundColor(Color.parseColor("#ffffbb33"));
    }
}

替换

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    return inflater.inflate(R.layout.top_fragment,container, false);

}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    button = (Button)getActivity().findViewById(R.id.button);
    mLinearLayout = (LinearLayout)getActivity().findViewById(R.id.layout);
}

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    View fragmentView = inflater.inflate(R.layout.top_fragment,container, false)

    button = (Button)fragmentView.findViewById(R.id.button);
    button.setOnClickListener(this);
    mLinearLayout = (LinearLayout)fragmentView.findViewById(R.id.layout);

    return fragmentView;

}

您的代码非常完美,但您需要添加 button.setOnClickListener(this);

     @Override
     public void onActivityCreated(Bundle savedInstanceState) {
     super.onActivityCreated(savedInstanceState);

     button = (Button)getActivity().findViewById(R.id.button);
     mLinearLayout = (LinearLayout)getActivity().findViewById(R.id.layout);
     button.setOnClickListener(this); }