Проверьте, совпадает ли контекст с классом в намеренном вызове - PullRequest
0 голосов
/ 03 декабря 2018

В настоящее время у меня есть метод, который вызывает действие:

  public void startActivity(final Context context, final Class mClass){

                    Intent i = new Intent(context, mClass);
                    i.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
                    mContext.startActivity(i);
        }

Мне нужно знать, совпадают ли мой контекст и мой класс.это возможно?Мне нужно это сделать, потому что я не хочу вызывать ту же активность, если я уже в этой активности (контексте).

Вот мой пример реализации того, как я в настоящее время использую метод:

  @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            // set item as selected to persist highlight
            //     item.setChecked(false);
            // close drawer when item is tapped
            mDrawerLayout.closeDrawers()
            switch (id) {
                case R.id.drawer_home:
                    startActivity(mContext,MainActivity.class);
                    break;
                case R.id.drawer_pay:
                    startActivity(mContext,BillsPaymentActivity.class);
                    break;
                case R.id.drawer_load:
                    startActivity(mContext,BuyAndSellLoadActivity.class);
                    break;

                default:
                    break;
            }
            return false;
        }

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

Используйте метод getClass(), чтобы получить класс контекста и сравнить его с вашим классом.

if(!context.getClass().equals(mClass)) {
    // start activity.
}
0 голосов
/ 03 декабря 2018

Попробуйте instanceof сравнить объект с конкретным типом класса, в вашем случае:

if(!(mContext instanceof MainActivity)) {
    // This means context is not of MainActivity
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...