我正在使用片段,我想注册一个按钮点击,但是当我尝试使用android:onClick时,我收到此错误。
java.lang.IllegalStateException: Could not find method preferenceChange(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatButton with id 'btnSave'
我尝试了不同的解决方案,但没有任何效果。我没有运行Lolipop。
答案 0 :(得分:1)
如果你正在使用
android:onClick
你需要调用活动中的方法而不是片段,如果要点击片段,你可以随时使用这个例子
final Button button = (Button) view.findViewById(R.id.button_id);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
}});
答案 1 :(得分:1)
我为修复问题所做的是让活动实现View.onClick Listener:
implements View.OnClickListener
然后在Activity Created Method中设置onClick Listener:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
btnSave = (Button) getActivity().findViewById(R.id.btnSave);
btnSave.setOnClickListener(this);
}
然后实现了我需要实现的方法:
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnSave:
preferenceChange();
break;
default:
break;
}
}