У меня есть приложение для Android, которое использует платную кнопку «Изображение» в нижней части каждого действия. При нажатии кнопки «Изображение» запускается другое действие, отображающее внутренний (спонсор) профиль спонсора или запуск веб-представления. Использование Web View пример, я передать URL в Web View с помощью дополнительного параметра Намерение в:Повторное использование Android-мероприятий с Intent Extras
Intent i = null;
i=new Intent (EventMain.this, SponsorWebView.class);
i.putExtra(URL_EXTRA, selectedSponsor.get("url"));
startActivity(i);
... и в Web View:
url=getIntent().getStringExtra(EventMain.URL_EXTRA);
Очевидно, что проблема заключается в факт, что функция getIntent() требует, чтобы вызывающая активность EventMain была жестко закодирована в списке параметров getStringExtra().
Хотя это работает просто отлично для одного действия, панель спонсора должна появляться в нескольких действиях в приложении. Я не могу поверить, что решение состоит в том, чтобы дублировать веб-представление для каждого вызывающего Activity, заменяя только имя вызывающей активности в списке параметров getStringExtra().
Любая помощь будет принята с благодарностью.
Благодарим за информацию. К сожалению, я не предполагаю ваше решение, используя эти методы. Не могли бы вы кратко рассказать, как вы видите, как эти методы работают над решением этой проблемы? Спасибо –
Я бы поставил что-то вроде следующего перед «i = new Intent ...» Контекст c = getContext(); ApplicationInfo info = c.getApplicationInfo(); String classname = info.className; загрузчик ClassLoader = c.getClassLoader(); Класс thisClass = загрузчик.loadClass (имя_класс); и затем: i = новое намерение (thisClass, SponsorWebView.class); Единственный шаг, который я не уверен в том, будет ли c.getApplicationInfo(). ClassName будет правильным именем (так как я никогда не использовал его сам). Надеюсь, что поможет – mfrankli
Спасибо, что посмотрели на это для меня. К сожалению, это не собирается делать трюк. Проблема заключается не в классе, который запускает веб-представление, а в самом классе Web View из-за необходимости ссылаться на вызывающий класс по имени в методе getIntent(). GetStringExtra (ClassName.EXTRA). Я хочу запустить веб-представление из нескольких классов, а параметризация ClassName.extra - это точка привязки. Еще раз большое спасибо за то, что посмотрели мой пост. –