片段中的按钮单击

时间:2016-12-11 22:30:28

标签: android android-fragments button onclicklistener

我正在使用片段,我想注册一个按钮点击,但是当我尝试使用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。

2 个答案:

答案 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;
        }

    }