Android:按钮 OnClick 在 SherlockFragment 中不起作用
Android: Button OnClick not working in SherlockFragment
我有选项卡 activity,我想在其中使用一个按钮,但是当我点击按钮时,它会强制关闭应用程序。你能告诉我发生了什么吗,我是 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;
}
}
when i click on button, it force closes the app
因为con
Context 的对象是null
。用于在 Button onClick
方法中显示 Toast 消息。
这样做:
Toast.makeText(v.getContext(), "hello", Toast.LENGTH_LONG).show();
并通过在 onCreateView
中调用 getActivity()
来初始化 con
对象:
con=getActivity();
如果可以避免这种情况,请不要保留对上下文的引用;而不是
private Context con;
获取当前代码中的Activity,所以使用
Toast.makeText(getActivity(), "hello", Toast.LENGTH_LONG).show();
顺便说一句,这似乎是您崩溃的原因,因为 Context 为空。
我有选项卡 activity,我想在其中使用一个按钮,但是当我点击按钮时,它会强制关闭应用程序。你能告诉我发生了什么吗,我是 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;
}
}
when i click on button, it force closes the app
因为con
Context 的对象是null
。用于在 Button onClick
方法中显示 Toast 消息。
这样做:
Toast.makeText(v.getContext(), "hello", Toast.LENGTH_LONG).show();
并通过在 onCreateView
中调用 getActivity()
来初始化 con
对象:
con=getActivity();
如果可以避免这种情况,请不要保留对上下文的引用;而不是
private Context con;
获取当前代码中的Activity,所以使用
Toast.makeText(getActivity(), "hello", Toast.LENGTH_LONG).show();
顺便说一句,这似乎是您崩溃的原因,因为 Context 为空。