在小吃店被解雇后转到设置菜单?

时间:2016-05-29 22:46:21

标签: android android-snackbar

我有一个浮动动作按钮,可以显示小吃吧。当小吃店被解雇时,我希望将用户重定向到手机的“设置”应用程序。

这是我目前的代码。

public class MainActivity extends AppCompatActivity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
                Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
                setSupportActionBar(toolbar);

                FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
                fab.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View view) {
                                final Snackbar snackbar = Snackbar.make(findViewById(R.id.fab), msg, Snackbar.LENGTH_INDEFINITE);
                                snackbar.setCallback(new Snackbar.Callback() {
                                        @Override
                                        public void onDismissed(Snackbar snackbar, int event) {
                                                // what goes here?
                                        }
                                });
                        }
                });

                /* putting goToSettings(this) here works fine */
        }

        public static void goToSettings(AppCompatActivity activity) {
                final Intent i = new Intent();
                i.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
                i.addCategory(Intent.CATEGORY_DEFAULT);
                i.setData(Uri.parse("package:" + activity.getPackageName()));
                i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                i.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
                i.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
                activity.startActivity(i);
        }

}

如果我将goToSettings()调用放在与浮动操作按钮相关的代码之外,则用户将作为调用onCreate()方法的最后一部分发送到Settings应用程序。但是,我希望解雇由浮动操作按钮单击创建的零食栏,以使用户转到“设置”应用程序,而不是自动将用户发送到那里。

我几乎可以确定goToSettings(this)onDismissed()方法中无效的原因是因为this不再指代MainActivity。但是知道这一点,我如何从解雇小吃店将用户重定向到“设置”应用程序?

0 个答案:

没有答案