Android:按钮OnClick无法在SherlockFragment中运行

时间:2015-11-07 10:46:23

标签: android actionbarsherlock

我的标签活动我想要使用按钮,但是当我点击按钮时,它强制关闭应用程序。你能告诉我发生了什么,我是Android的新手。

 public class HomeActivity extends SherlockFragment {
    private Button bt;
    private Context con;


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.home_layout, container, false);
        bt = (Button)rootView.findViewById(R.id.btn);
        bt.setOnClickListener(new View.OnClickListener(){
            @Override public void onClick(View v)
            {

                Toast.makeText(con, "hello", Toast.LENGTH_LONG).show();

            }       
        });

        return rootView;

    }


}

2 个答案:

答案 0 :(得分:0)

  

当我点击按钮时,它强制关闭应用

因为Context的con对象是null。用于在Button onClick方法中显示Toast消息。

这样做:

 Toast.makeText(v.getContext(), "hello", Toast.LENGTH_LONG).show();

通过调用con中的getActivity()来初始化onCreateView对象:

con=getActivity();

答案 1 :(得分:0)

如果可以避免这种情况,请不要继续引用上下文;而不是

private Context con;

获取代码中的当前活动,因此请使用

Toast.makeText(getActivity(), "hello", Toast.LENGTH_LONG).show();

顺便说一下,这似乎是导致崩溃的原因,因为Context为null。