Расшифровка кода для открытия галереи в Android - PullRequest
0 голосов
/ 19 июня 2020

Я новичок в Android. Пожалуйста, объясните приведенный код Java, который используется для открытия галереи и выбора изображения. Я имею в виду, какова цель данных слов в коде. например: Intent.ACTION_GET_CONTENT Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(Intent.createChooser(intent, "Select Picture"),SELECT_IMAGE);

Ответы [ 2 ]

1 голос
/ 19 июня 2020

Мои 2 цента - это то, что всякий раз, когда вы хотите понять что-то о феймворке, документация Android должна быть первым местом, где вы просматриваете, она содержит почти всю информацию для любого метода / константы того, что вы пытаетесь использовать из Framework.

setType: https://developer.android.com/reference/android/content/Intent#setType (java .lang.String)

setAction: https://developer.android.com/reference/android/content/Intent#setAction (java .lang.String)

startActivityForResult: https://developer.android.com/reference/android/app/Activity#startActivityForResult (android .content.Intent,% 20int)

createChooser: https://developer.android.com/reference/android/content/Intent#createChooser (android .content.Intent,% 20 java .lang.CharSequence,% 20 android .content.IntentSender )

ACTION_GET_CONTENT: https://developer.android.com/reference/android/content/Intent#ACTION_GET_CONTENT

Это так же просто, как просто набрать в Google android + <the method you want>:)

0 голосов
/ 19 июня 2020

Я постараюсь объяснить вам это как можно проще, не запутывая вас техническими словами

.

===== ДЛИННОЕ ОБЪЯСНЕНИЕ ===== Всего четыре строки кода, мы фрагментируем каждую, чтобы лучше читать:

LINE 1) «Intent intent = new Intent ();»

  • Intent -> это тип класса, вы знаете его, потому что он начинается с заглавной буквы

  • intent -> это имя создаваемого вами намерения, вы знаете, что это переменная, потому что она начинается со строчной буквы

  • = -> в этот момент у вас есть переменная с именем намерение типа Intent, которая пока в нем ничего нет. Вызов знака = означает, что вы заполните свою переменную тем, что следует за знаком =

    • new Intent (); -> это указывает на создание нового класса Intent. Вы знаете это, потому что у него есть слово new впереди и () после имени класса, которое представляет конструктор класса.

=> поэтому в основном эта строка указывает, что вы создаете новый объект класса типа Intent и воздействуете на него переменной с именем «intent».

.

СТРОКА 2) "intent.setType (" image / * ");"

  • intent.setType -> вы вызываете метод под названием "setType" вашего "намерения", созданного ранее.

  • ("image / *"); -> метод setType параметра класса Intent. Здесь это означает, что вы хотите установить тип своего «намерения» как тип изображения.

=> эта секунда указывает, что тип данных для возврата будет изображением.

.

LINE 3) "intent.setAction (Intent.ACTION_GET_CONTENT);"

  • intent.setAction -> вы вызываете метод " setAction "вашего" намерения ", созданного ранее.

  • (Intent.ACTION_GET_CONTENT); -> Вы используете stati c final переменную типа String из класса Intent под названием «ACTION_GET_CONTENT». Он позволяет вам выбрать определенный тип данных и вернуть их.

=> для упрощения, эта строка указывает, какое действие будет выполнено, что означает, что если у пользователя есть несколько приложений для просмотра images, он сможет выбрать, какое из них использовать

.

LINE 4) "startActivityForResult (Intent.createChooser (intent," Select Picture "), SELECT_IMAGE);"

  • startActivityForResult -> метод по умолчанию, называемый "startActivityForResult" класса Activity.

  • Intent.createChooser (intent, «Select Picture») -> give правильный интерфейс для пользователя, чтобы выбрать способ отправки данных и позволить вам указать подсказку, показывающую, что они делают

  • , -> указывает на разделение между параметрами метода

  • SELECT_IMAGE -> это пользовательский код запроса, который вы передаете, чтобы определить, что вы хотите выбрать изображение (например: int SELECT_IMAGE = 1;)

=> поставить очень просто y, эта строка позволяет получить доступ к выбранной фотографии

.

.

===== КРАТКОЕ ОБЪЯСНЕНИЕ ===== Сложите все вместе, Показанный вами блок кода создаст намерение, которое позволяет пользователю выбрать приложение изображения по своему выбору и получить из него изображение. Затем вы можете использовать это изображение в методе onActivityResult (int requestCode, int resultCode, Intent data).

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...