Во-первых, в соглашениях об именах Java имена классов пишутся с большой буквы, что позволяет любому, кто читает код, мгновенно узнать, что к чему. Пожалуйста, переименуйте showImage
класс.
Во-вторых, это приведет к продолжительной операции в потоке пользовательского интерфейса, лучше всего это сделать с помощью AsyncTask - см. Эту статью на Потоки безболезненно - или с новым потоком с обработчиком. Длительные операции в потоке пользовательского интерфейса блокируют своевременную обработку любых событий обработчика ввода и могут привести к тому, что ваше приложение перестает отвечать на запросы, особенно при медленном мобильном соединении. Попробуйте добавить индикатор выполнения или какой-либо метод уведомления пользователя о том, что приложение все еще что-то делает, пока они ждут.
Чтобы ответить на оригинальный вопрос, похоже, что showImage
- это Activity
. Это означает, что внутри слушателя вам не нужно создавать новый объект showImage
, а нужно запустить Intent
, чтобы просмотреть Activity
. Предполагая, что у вас есть правильные файлы макетов, я не вижу ничего, что не будет работать здесь.
Похоже, у вас также есть неиспользуемая переменная, String url = null;
не требуется.
Редактировать: Вы также не должны использовать System.out.println()
, хотя это даст желаемые результаты. Стандартный метод входа в Android - использование системы LogCat .
Как уже упоминал suri, необязательно иметь совершенно новый Activity
, чтобы показать ваше изображение. Если вы переместили функции класса showImage
в свой первый Activity
и добавили ImageView
к первому макету, вы можете загрузить изображение в том же Activity
, что и у кнопки.