Size: a a a

StartAndroid Ru Chat

2021 March 01

a

arsenyi in StartAndroid Ru Chat
Rulevsky
Если я правильно понял, то нет. Он сразу вызывает метод
Не, там не нужно ничего имплементить. Вообще без разницы как делать клик, но лично мне удобнее все делать в коде
источник

КГ

Константин Голубев... in StartAndroid Ru Chat
Rulevsky
Если я правильно понял, то нет. Он сразу вызывает метод
Тогда для статичных (один раз настроил и забыл) view удобнее использовать xml:onclick
View.OnClickListener программно можно заменить на другой.
источник

a

arsenyi in StartAndroid Ru Chat
Константин Голубев
Тогда для статичных (один раз настроил и забыл) view удобнее использовать xml:onclick
View.OnClickListener программно можно заменить на другой.
Ну вот, кому как)
источник

R

Rulevsky in StartAndroid Ru Chat
arsenyi
Ну вот, кому как)
Я поэтому и спросил. В хмл пару кликов, и даже метод кликом создаётся в активити.
А не вот эта писанина с листнером, потом свич...
источник

a

arsenyi in StartAndroid Ru Chat
Rulevsky
Я поэтому и спросил. В хмл пару кликов, и даже метод кликом создаётся в активити.
А не вот эта писанина с листнером, потом свич...
Как писанина? Наоборот, так легче. Не нужно лезть в хмл. Я вообще сижу на синтетиках, там сразу по id обращаешься
источник

a

arsenyi in StartAndroid Ru Chat
(дада, депрекат)
источник

R

Rulevsky in StartAndroid Ru Chat
Чтоб я понял о чем речь😂😂😂😂 на синтетиках...
источник

a

arsenyi in StartAndroid Ru Chat
Ну, это фишка такая котлина что ли. Можно сразу обращаться к Вью по id, типо idView.setOnClick....
источник

R

Rulevsky in StartAndroid Ru Chat
Аа круто, я пока до котлин в не дошёл. Делаю страшные приложения по курсам и сам параллельно пытаюсь свое пильнуть😁
источник

КГ

Константин Голубев... in StartAndroid Ru Chat
arsenyi
Ну, это фишка такая котлина что ли. Можно сразу обращаться к Вью по id, типо idView.setOnClick....
можно и на java:
findViewById(R.id.button).setOnClickListener(new View.OnClickListener(){...});
источник

Н

Некси in StartAndroid Ru Chat
arsenyi
Ну, это фишка такая котлина что ли. Можно сразу обращаться к Вью по id, типо idView.setOnClick....
Можно использовать viewbinding и на Java, и на Kotlin
источник

a

arsenyi in StartAndroid Ru Chat
Можно. Но это все равно не то)
источник

Н

Некси in StartAndroid Ru Chat
Ну так обращение будет просто binding.layout_id, что не сильно отличается
источник

IB

Ivan B in StartAndroid Ru Chat
Ivan B
поймал!
2021-03-01 17:40:08.406 17958-17958/? E/CameraManager: doAttach, IOException error, exception: No content provider: content://com.example.android.fileprovider/external_files/..полный path .... /temp/JPG_1614591496469_4216491334014847948.jpg
меня еще напрягает xml который должен описывать файлы для которых идет расшарка

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
   <external-path name="external_files" path="."/>
<!--    <external-path name="external_files" path="/storage/emulated/0"/>-->
</paths>

вот неясно кто такой external_files - потом он в path и вводится -
content://com.example.android.fileprovider/external_files/ ....

по докам как раз должно быть чтото типа "/storage/emulated/0" как я пытался сделать - но тогда точно не работает
источник

IB

Ivan B in StartAndroid Ru Chat
Maks 🤘🏻 E-notty
FileProvider.getUriForFile(activity.getApplicationContext(),
увы не помогает пока
источник

VL

Vladyslav Lozytskyi in StartAndroid Ru Chat
Ivan B
меня еще напрягает xml который должен описывать файлы для которых идет расшарка

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
   <external-path name="external_files" path="."/>
<!--    <external-path name="external_files" path="/storage/emulated/0"/>-->
</paths>

вот неясно кто такой external_files - потом он в path и вводится -
content://com.example.android.fileprovider/external_files/ ....

по докам как раз должно быть чтото типа "/storage/emulated/0" как я пытался сделать - но тогда точно не работает
там относительный путь. Т.е.
<external-path name="external_files" path="DCIM/"/>


это по факту путь /storage/emulated/0/DCIM/ (первая часть пути может зависеть от девайса). Но FileProvider нужен для расшарки файлов из приватных папок приложения, зачем его использовать для external-path не совсем понимаю...
источник

VL

Vladyslav Lozytskyi in StartAndroid Ru Chat
Ivan B
меня еще напрягает xml который должен описывать файлы для которых идет расшарка

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
   <external-path name="external_files" path="."/>
<!--    <external-path name="external_files" path="/storage/emulated/0"/>-->
</paths>

вот неясно кто такой external_files - потом он в path и вводится -
content://com.example.android.fileprovider/external_files/ ....

по докам как раз должно быть чтото типа "/storage/emulated/0" как я пытался сделать - но тогда точно не работает
финальный URI будет content://com.mydomain.fileprovider/external_files/default_image.jpg что будет равносильно пути /storage/emulated/0/DCIM/default_image.jpg для примера выше. Достать этот URI можно в Вашем приложении через getUriForFile метод.
источник

IB

Ivan B in StartAndroid Ru Chat
Vladyslav Lozytskyi
там относительный путь. Т.е.
<external-path name="external_files" path="DCIM/"/>


это по факту путь /storage/emulated/0/DCIM/ (первая часть пути может зависеть от девайса). Но FileProvider нужен для расшарки файлов из приватных папок приложения, зачем его использовать для external-path не совсем понимаю...
боюсь у нас никто не помогает благодаря чему в коде есть кусок явно выпиленный из инета, и значение его покрыто тайной.
щас почитал про все это, стало немного яснее, но все же не совсем.
вот кто-то пишет - provider path is using external-path which links to the device root external storage. (/storage/emulated/0)
т.е. таки external-path это некий хардкор андроида указывающий на storage/emulated хотя блин нигде ясно в доках про это не сказано

вот еще

в манифесте указан как

<provider
           android:name="androidx.core.content.FileProvider"
           android:authorities="com.example.android.fileprovider"
           android:exported="false"
           android:grantUriPermissions="true">
           <meta-data
               android:name="android.support.FILE_PROVIDER_PATHS"
               android:resource="@xml/file_paths" />
       </provider>

при этом в ряде примеров есть такое
<provider
       android:name="androidx.core.content.FileProvider"
       android:authorities="com.camera.app.fileprovider"
       android:exported="false"
       android:grantUriPermissions="true">
       <meta-data
           android:name="android.support.FILE_PROVIDER_PATHS"
           android:resource="@xml/file_paths">

       </meta-data>
   </provider>

т.е. другие authorities - имеет ли это смысл?
источник

IB

Ivan B in StartAndroid Ru Chat
com.camera.app.fileprovider  выглядит както удачнее чем com.example.android.fileprovider
этот example меня просто выносит
источник

VL

Vladyslav Lozytskyi in StartAndroid Ru Chat
Ivan B
боюсь у нас никто не помогает благодаря чему в коде есть кусок явно выпиленный из инета, и значение его покрыто тайной.
щас почитал про все это, стало немного яснее, но все же не совсем.
вот кто-то пишет - provider path is using external-path which links to the device root external storage. (/storage/emulated/0)
т.е. таки external-path это некий хардкор андроида указывающий на storage/emulated хотя блин нигде ясно в доках про это не сказано

вот еще

в манифесте указан как

<provider
           android:name="androidx.core.content.FileProvider"
           android:authorities="com.example.android.fileprovider"
           android:exported="false"
           android:grantUriPermissions="true">
           <meta-data
               android:name="android.support.FILE_PROVIDER_PATHS"
               android:resource="@xml/file_paths" />
       </provider>

при этом в ряде примеров есть такое
<provider
       android:name="androidx.core.content.FileProvider"
       android:authorities="com.camera.app.fileprovider"
       android:exported="false"
       android:grantUriPermissions="true">
       <meta-data
           android:name="android.support.FILE_PROVIDER_PATHS"
           android:resource="@xml/file_paths">

       </meta-data>
   </provider>

т.е. другие authorities - имеет ли это смысл?
authorities должен быть сугубо Ваш, так как не только ваше приложение может шарить файлы через провайдер. В теории пути могут совпасть, а файлы будут разные. Поэтому пропишите свой authorities. getFileUri метод его подхватит при генерации пути
источник