我正在尝试启动一个新的Tab1City活动,因为我点击Tab1Discover中的一个按钮,这是一个片段。 我尝试了几个组合,如果参数,查看stackoverflow,但它继续编译并使应用程序在启动时崩溃,使用:
java.lang.NullPointerException:尝试在空对象引用上调用虚方法'void android.widget.Button.setOnClickListener(android.view.View $ OnClickListener)'
在Tab1Discover.onCreateView(Tab1Discover.java:32)
public class Tab1Discover extends Fragment {
@InjectView(R.id.buttonLille)
Button _loginButton;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
_loginButton.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
// Start the Signup activity
Intent intent = new Intent(getActivity(), Tab1City.class);
startActivity(intent);
}
});
return inflater.inflate(R.layout.tab_1_disc1_main, container, false);
}
}
答案 0 :(得分:2)
修改强>
我注意到(感谢评论)你正在使用RoboGuice。在quick search之后,我发现该引用只能在onViewCreated
中使用,因此请将代码移到那里:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.tab_1_disc1_main, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
_loginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Start the Signup activity
Intent intent = new Intent(getActivity(), Tab1City.class);
startActivity(intent);
}
});
}
答案 1 :(得分:0)
根据您对@ InjectView'的使用情况,我猜测您正在使用ButterKnife 6.0.x.
你错过了ButterKnife的部分,你必须告诉它何时注入观点。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.tab_1_disc1_main, container, false);
ButterKnife.inject(this, rootView);
_loginButton.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
// Start the Signup activity
Intent intent = new Intent(getActivity(), Tab1City.class);
startActivity(intent);
}
});
return rootView;
}
使用此代码,您可以告诉ButterKnife在何处查找视图,以便设置绑定。从这里开始,您只需添加所需的所有@InjectView,它就会自动处理绑定。
答案 2 :(得分:0)
非常感谢,现在正在运作:
If object_id('tempdb..#test1') vs If object_id('#test1')