2017-03-09 73 views
0

我想更改片段的背景颜色。但是当我点击按钮时,什么都没有发生。我无法更改Android中片段的背景颜色

在我的主要活动布局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")); 
    } 
} 
+1

发布您的xml代码和活动代码也 – Bhavnik

+1

而不是在这里把愚蠢的问题。首先,正确学习android基础知识。 [请点击此处](http://www.androidhive.info/) –

+0

您是否为按钮设置了“setOnClickListener”?另一个问题,按钮是在片段还是活动布局?如果活动,为什么不在Activity中做这个,如果另一个你应该使用'fragmentView.findViewById'而不是'getActivity()。findViewById'。 – xiaoyuan

回答

0

更换

@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; 

} 
+0

仍然不工作 –

+0

@GugaRai更新了答案,我假设你设置了一个onClick监听器,但它可能不是 –

+0

当我粘贴此代码mLinearLayout.setBackgroundColor(Color.parseColor(“#ffffbb33”));里面onCreateView它的工作,但是当我粘贴在onClick它不工作 –

1

你的代码是完美,但你需要添加button.setOnClickListener(本);

 @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); } 
+0

下面的答案工作是我也忘了添加button.setOnClickListener(this);但我包括查看基地linearlayout的基类工作我的代码,所以下面的人给了我答案检查出下面的答案 –