У меня есть 5 или около того действий в Android (2 из них были показаны ниже), которые имеют общий Навигационный ящик.Если я вхожу в какую-либо учетную запись из окна навигации, после успешного входа в систему необходимо загрузить ранее показанное действие.Можно ли отправить контекст активности через намерение?
FirstActivity.java
Intent intent1 = new Intent(FirstActivity.this, Login.class);
intent1.putExtra("activity", "FirstActivity");
startActivity(intent1);
finish();
SecondActivity.java
Intent intent2 = new Intent(SecondActivity.this, Login.class);
intent2.putExtra("activity", "SecondActivity");
startActivity(intent2);
finish();
При поиске имени действия, которое нужно вернуть ввход в систему, после успешного входа.
Login.java
Intent intent3 = getIntent();
String activity = intent3.getStringExtra("activity");
...
Intent intent4 = new Intent(Login.this, Class.forName(activity));
startActivity(intent4);
finish();
возвращает следующее сообщение об ошибке:
W/System.err: java.lang.ClassNotFoundException: Home
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:453)
Кто-нибудь знает, как это исправить?
Использование intent1.putExtra("activity", String.valueOf(FirstActivity.this));
также не работает, оно говорит, что com.example.nativeapp.FirstActivity@6a7640
является недопустимым именем класса.
Должен ли я преобразовать контекст действия в Serializable или Parcelable или дажеCharSequence, когда я пытаюсь отправить эти значения переменных через намерение?Кажется, что Activity или AppCompatActivity не наследуют Serializable или Parcelable, чтобы это сработало.CharSequence, кажется, не имеет большого значения от использования String.
Я знаю, что могу создать свой собственный класс для хранения глобальных переменных и контекстов активности, и моя активность может наследоваться от этого, но так как моя активность уже наследует NavigationDrawerМоя деятельность не может наследовать второй класс.Могу ли я объявить это как интерфейс и наследовать интерфейс для доступа к значениям глобальной переменной из интерфейса?Методы получения и установки, безусловно, не могут работать в интерфейсе, поскольку в интерфейсе не допускается реализация функций и объявление значений переменных.
Одна из причин, по которым я решил принять решение сделатьиспользование центрального суперкласса для хранения значений переменных и их изменения из подклассов всякий раз, когда я пытаюсь перейти от одного действия к другому, заключается в том, что контексты действия подобны этому, я не уверен, как передать их через намерения.Это намерение, которое также должно быть в состоянии передавать внутри других центральных глобальных переменных мобильного приложения от одного класса активности к другому.Центральный суперкласс, такой как NavigationDrawer, который является отличным кандидатом, поскольку все мои классы активности Android наследуются от него, было бы лучше использовать, если в нем хранятся все центральные глобальные переменные, и они меняются из подклассов всякий раз, когда я пытаюсь переместитьот одного занятия к другому.
Как мне это сделать?