java.lang.IllegalStateException: Could not find method onRadioButtonClicked(View) in a parent or ancestor Context for android:onClick attribute defined on view class
이 오류에 대해서 오늘 다뤄 볼려고 합니다.
일반 메인 액티비티에서는 잘 작동하는 클릭 이벤트 들인데 프래그먼트에서는 오류가 나옵니다.
구글링을 해보니 프래그먼트에는 onClicked 함수를 정의할 수 없다고 합니다.
따라서 메인 액티비티에 프래그먼트를 정의하던지 onCreateView함수를 오버라이딩해 그 안에 onClick을 정의 해야합니다.
저는 onCreateView함수를 이용해 해결하였습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
public class EvaluationPage extends Fragment {
private int count = 0;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
ViewGroup radiogroup = (ViewGroup) inflater.inflate(R.layout.fragment_evaluation, container, false);
RadioButton radioButton = radiogroup.findViewById(R.id.radioButton);
radioButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
boolean checked = ((RadioButton) view).isChecked();
if (checked)
count++;
}
});
}
|
cs |
* onCreateView() : inflate를 위한 메소드.