Android 按ShowcaseView按钮切换到其他视图

Android 按ShowcaseView按钮切换到其他视图,android,android-studio,showcaseview,Android,Android Studio,Showcaseview,我目前正致力于在应用程序中实现ShowcaseView。我的目标是在按下“完成”按钮时更改视图。我目前遇到的问题是,一旦它更改为新视图,整个代码块将再次运行,ShowcaseView将在下一页再次弹出。在我添加代码以更改视图之前,一切都正常工作。感谢您的帮助 以下是我目前掌握的代码: public void createShowView() { ShowcaseView sc = new ShowcaseView.Builder(getActivity())

我目前正致力于在应用程序中实现ShowcaseView。我的目标是在按下“完成”按钮时更改视图。我目前遇到的问题是,一旦它更改为新视图,整个代码块将再次运行,ShowcaseView将在下一页再次弹出。在我添加代码以更改视图之前,一切都正常工作。感谢您的帮助

以下是我目前掌握的代码:

public void createShowView() {

    ShowcaseView sc =  new ShowcaseView.Builder(getActivity())
            .setTarget(new ViewTarget())
            .setContentTitle("")
            .setContentText("")
            .setStyle(R.style.CustomShowcaseTheme2)
            .hideOnTouchOutside()
            .setShowcaseEventListener(new SimpleShowcaseEventListener() {
                public void onShowcaseViewDidHide(ShowcaseView showcaseView) {
                    Intent tab2 = new Intent(getContext(), tabs.class);
                    tab2.putExtra("Specific Tab", 1);
                    startActivity(tab2);

                }
            })
            .build();


}

public void createDialog() {
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    builder.setMessage("To view a full tutorial of ...., press continue.")
            .setTitle("View Tutorial");
    builder.setPositiveButton("Continue", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {

            createShowView();

        }
    });
    builder.setNegativeButton("Skip Tutorial", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {

            getActivity().getSharedPreferences("PREFERENCE", Context.MODE_PRIVATE).edit()
                    .putBoolean("isfirstrun", false)
                    .commit();

        }
    });

        AlertDialog dialog = builder.create();
        dialog.show();

}

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    Boolean isFirstRun = this.getActivity().getSharedPreferences("PREFERENCE", Context.MODE_PRIVATE)
            .getBoolean("isfirstrun", true);

    if (isFirstRun) {


        createDialog();



    }

}

你所说的“改变观点”到底是什么意思?你指的是
Intent
/
startActivity()
块吗?是的,这就是我指的。好吧,这是在启动一个全新的
选项卡实例,它将从一开始就加载并初始化,就像启动它时一样。(我假设这是您在中使用的
ShowcaseView
活动)您可能不想这样做。相反,听起来您只是想更改当前实例中的选项卡,但是您碰巧正在处理这些选项卡。