목록Android (57)
Hanbit the Developer
0. build.gradle implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:converter-gson:2.9.0' 저장 후 'Sync Project With Gradle Files'는 필수이다. 1. Interface 및 데이터 형식 지정 MyApi.kt import retrofit2.Call import retrofit2.http.GET import retrofit2.http.Header import retrofit2.http.Query interface MyApi { @GET("ex/api.json") fun getSearchKeyword( @Header("h1") h1: Stri..
여러 개의 권한을 묶어서 권한이 허용되었는지 확인하고, 개중 허용되지 않은 권한들에 대해서 권한 요청을 보내는 상황이다. - 권한 획득 여부 확인 ContextCompat.checkSelfPermission(Context context, String permission)는 PERMISSION_GRANTED 또는 PERMISSION_DENIED를 반환한다. - 권한 요청 ActivityCompat.requestPermissions(Activity activity, String[] permissions, int requestCode)는 Array로 묶인 권한들을 전부 요청해준다. 여기서 requestCode는 단순히, 요청을 하는 액티비티를 구분하기 위한 코드이다. - import import android..
첫번째는 AndroidManifest.xml의 해시값을 확인하는 것이며, 두번째는 앱에서 '지도' 권한이 허용되었는지를 확인하는 것이다. - 관련 링크 권한 요청하는 법 https://rccode.tistory.com/entry/Check-If-Permissions-is-granted-or-denied-And-Request-Permissions-in-Android?category=1188549 Check If Permissions is granted or denied And Request Permissions in Android 여러 개의 권한을 묶어서 권한이 허용되었는지 확인하고, 개중 허용되지 않은 권한들에 대해서 권한 요청을 보내는 상황이다. - 권한 획득 여부 확인 ContextCompat.che..
build.gradle에서 implements로 원하는 모듈을 추가하여도 import가 되지 않는 문제이다. 해결 방법은 다음과 같다. 1. (/app/build.gradle이 아니라) /build.gradle에 다음과 같은 내용을 추가한다. allprojects { repositories { google() jcenter() } } 참고로 전체 내용은 다음과 같다. // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { ext.kotlin_version = '1.4.31' repositories { google() jcenter() } dependencie..
jeongupark-study-house.tistory.com/54
ListViewAdapter의 notifyDataSetChanged()는 기본적으로 UiThread에서 실행되어야 한다. 따라서, MainActivity에서 다음과 같은 코드를 써주면 작동이 된다. runOnUiThread{ adapter.notifyDataSetChanged() } 추가로 만약 MainActivity가 아닌, 다른 Class에서 runOnUiThread를 사용하기 위해선 밑의 포스팅을 참고하자. rccode.tistory.com/16
MainActivity.kt public interface InterfaceMainActivity{ fun myFun() } class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val myClass = MyClass() myClass.interfaceMainActivity = object: InterfaceMainActivity{ override fun myFun(){ //TODO: Write Your Code! } } } } MyClass.kt class..