[android] NullPointerException: Attempt to invoke virtual method ‘void android.widget.Button.setOnClickListenerエラーの対処方法
目次
NullPointerException: Attempt to invoke virtual method ‘void android.widget.Button.setOnClickListenerエラーの対処方法
Avtivity上にButtonを配置して、onClickListnerを設定したらNullPointerエラーが出た。
調べてみたら、Viewが配置されるonCreateViewでButtonの配置とonClickListnerを設定が必要だった。
エラー発生時はonCreateで作成していた。
解決前:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Button button = (Button)this.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getActivity(), "hoge!", Toast.LENGTH_SHORT).show();
}
});
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_main, null, false);
}
解決後
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.fragment_main, null, false);
Button button = (Button)view.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getActivity(), "hoge!", Toast.LENGTH_SHORT).show();
}
});
return view;
}