Java 了解Android中Camera2Basic中camera2 API中的按钮点击

Java 了解Android中Camera2Basic中camera2 API中的按钮点击,java,android,android-camera,Java,Android,Android Camera,我试图理解Camera2API在GoogleCamera2Basic示例代码中是如何工作的。具体来说,“图片”按钮如何注册快照 在onCreateViewCreated中: @Override public void onViewCreated(final View view, Bundle savedInstanceState) { view.findViewById(R.id.picture).setOnClickListener(this); view.findViewBy

我试图理解Camera2API在GoogleCamera2Basic示例代码中是如何工作的。具体来说,“图片”按钮如何注册快照

在onCreateViewCreated中:

@Override
public void onViewCreated(final View view, Bundle savedInstanceState) {
    view.findViewById(R.id.picture).setOnClickListener(this);
    view.findViewById(R.id.info).setOnClickListener(this);
    mTextureView = (AutoFitTextureView) view.findViewById(R.id.texture);
}
所以
setOnClickListener()
注册单击?但是,它的作用是什么呢?我看到这个被传了进来,但我不明白发生了什么

我通常做的是在
onCreateView()
中设置一个按钮,并将其
setOnClickListener()
连接到如下操作:

photoButton = (Button)v.findViewById(R.id.picture);
photoButton.setOnClickListener(new View.onSetClickListener() {
    @Override
    public void onClick(View v) {
        //some action
    }
});

在示例代码中也发生了同样的事情。但是,它看起来有点不同,因为
Camera2BasicFragment
活动正在实现
OnClickListener
。因此,当设置onClickListener时,
this
表示此活动将覆盖
onClick
方法。因此,当单击按钮时,会自动调用类中的
onClick
方法

@Override
public void onClick(View view) {
    switch (view.getId()) {
        case R.id.picture: {
            takePicture();
            break;
        }
        case R.id.info: {
            Activity activity = getActivity();
            if (null != activity) {
                new AlertDialog.Builder(activity)
                        .setMessage(R.string.intro_message)
                        .setPositiveButton(android.R.string.ok, null)
                        .show();
            }
            break;
        }
    }
}