24,200원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
firebase 회원가입, 로그인 delay 관련 질문입니다.
이런식으로 회원가입 코드를 구성했는데 계속 아래와 같이 Ignoring header X-Firebase-Locale because its value was null. 해당 오류가 뜨면서 delay가 되고 한참 지나서야 firebase 서버에 유저 정보가 생성되네요. 로그인도 마찬가지로 요청을 보낸 뒤 한참 뒤에야 작업이 이루어집니다. 어떤 부분을 의심해봐야 할까요?
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
안드로이드 스튜디오 버전에 따른 gradle 차이
안드로이드 돌핀을 쓰고 있습니다. 강의 영상에 gradle이 달라서 firebase에 관한 의존성을 추가하기 어려운 경으이전 버전의 안드로이드 스튜디오를 설치하라고 되어 있는데 이전 버전을 설치하지 않고 돌핀 버전에서 gradle을 수정해서 firebase를 사용할 수는 없나요?
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
member implement가 안됩니다
RVAdapter.kt 파일에 import androidx.recyclerview.widget.RecyclerView class RVAdapter(val items : MutableList<String>) : RecyclerView.Adapter<RVAdapter.ViewHolder>{ } 이렇게만 입력되어 있는 상황입니다알트 엔터 눌러서 멤버 임플리멘트하려고 하는데 멤버 세개 다 클릭하여 ok 눌렀는데 아무 변화가 없습니다비슷한 질문을 하신 분이 있던데 그 분과 똑같은 상태입니다.이전 버전인 fox, 범블비를 다운로드 하여 시도해보면 더 최신 버전으로 파일 열라고 나오고요.. (This version of the Android Support plugin for IntelliJ IDEA (or Android Studio) cannot open this project, please retry with version 2021.2.1 or newer.)그래서 fox uninstall하고 그냥 최신버전(아마도 dolphin)으로 다시 다운로드 한 상황입니다하루종일 삭제와 설치만 반복했는데 달라지는 게 없네요..삭제할때는 uninstall + SDK 까지 날렸습니다. build.gradle 파일입니다plugins { id 'com.android.application' version '7.3.0' apply false id 'com.android.library' version '7.3.0' apply false id 'org.jetbrains.kotlin.android' version '1.7.10' apply false }
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
리얼타임 데이터베이스 앱 연결 문제
안녕하세요 복치님질문마다 답변들 감사드립니다!저번에도 이 부분에서 아무리 해도 안되서 처음부터 다시 했었거든요! 처음부터 다시 해봐도 같은 문제여서 질문드립니다 저장하기 버튼을 아무리 눌러도 이렇게 화면에 변화가 없는데 뭐가 문제인지 잘 모르겠습니다 도와주세요 <build.gradle>plugins { id 'com.android.application' id 'kotlin-android' } android { compileSdk 33 defaultConfig { applicationId "com.example.diet_memo" minSdk 21 targetSdk 33 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = '1.8' } } apply plugin: 'com.google.gms.google-services' dependencies { implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.4.1' implementation 'com.google.android.material:material:1.6.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' testImplementation 'junit:junit:4.+' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' implementation platform('com.google.firebase:firebase-bom:31.0.1') implementation 'com.google.firebase:firebase-analytics-ktx' implementation 'com.google.firebase:firebase-auth-ktx' implementation 'com.google.firebase:firebase-database-ktx' } <MainActivity>package com.example.diet_memo import android.app.DatePickerDialog import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log import android.view.LayoutInflater import android.widget.Button import android.widget.DatePicker import android.widget.ImageView import androidx.appcompat.app.AlertDialog import com.google.firebase.database.ktx.database import com.google.firebase.ktx.Firebase import java.util.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val writeButton = findViewById<ImageView>(R.id.writeBtn) writeButton.setOnClickListener { val mDialogView = LayoutInflater.from(this).inflate(R.layout.custom_dialog, null) val mBuilder = AlertDialog.Builder(this) .setView(mDialogView) .setTitle("운동 메모 다이얼로그") val mAlertDialog = mBuilder.show() val DateSelectBtn = mAlertDialog.findViewById<Button>(R.id.dateSelectBtn) DateSelectBtn?.setOnClickListener { val today = GregorianCalendar() val year : Int = today.get(Calendar.YEAR) val month : Int = today.get(Calendar.MONTH) val date : Int = today.get(Calendar.DATE) val dlg = DatePickerDialog(this, object : DatePickerDialog.OnDateSetListener { override fun onDateSet(view: DatePicker?, year: Int, month: Int, dayOfMonth: Int ) { Log.d("MAIN", "${year}, ${month + 1}, ${dayOfMonth}") DateSelectBtn.setText("${year}, ${month + 1}, ${dayOfMonth}") } },year,month,date) dlg.show() } val saveBtn = mAlertDialog.findViewById<Button>(R.id.saveBtn) saveBtn?.setOnClickListener { val database = Firebase.database val myRef = database.getReference("message") myRef.setValue("Hello, World!") } } }
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
다이어트 메모앱 values.xml 오류
안녕하세요 복치님오류가 떠서 파일 삭제 후 처음부터 다시 하고있는데 이번엔 새로운 오류가 떠서 질문 남깁니다 <macro name="m3_comp_bottom_app_bar_container_color">?attr/colorSurface</macro> Android 스튜디오 Arctic Fox(2020.3.1) 패치 2버전을 설치해서 사용중인데요이런 오류는 어떻게 해결해야하는지 도와주세요
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
FireBase auth 임포트 오류
안녕하세요 복치님밑에 사진과 같이 auth부분만 임포트가 되지 않고 계속 오류가 떠서 질문드립니다제가 처음 다람쥐 버젼에서 늑대버전으로 다운그레이드 해보았는데도 똑같은 오류가 뜨고, 최신 돌핀버젼으로 업그레이드 했는데도 똑같은 오류가 뜨고,Build -> clean project -> Rebuild Project 를 해도 계속 auth부분만 오류가 뜹니다 도와주세요!ㅠㅠ package com.example.fb_login_test import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Button import com.google.firebase.auth.FirebaseAuth import com.google.firebase.ktx.Firebase class MainActivity : AppCompatActivity() { private lateinit var auth: FirebaseAuth override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) auth = Firebase.auth val btn = findViewById<Button>(R.id.noEmailloginbtn) btn.setOnClickListener { } } }
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
무선으로 앱설치
무선으로 앱설치 휴대폰에서 화면이 켜졌다가 바로 꺼지는 증상이 발생하고 있습니다...안드로이드스튜디오에서는 전혀 느낌표나 문제가 보이지 않구요.왜 그럴까요? 이전까지는 잘 했는데 fb_login 앱 제작시 문제가 발생했습니다.도움 부탁드립니다. 강의 잘 듣고 있습니다. 감사드려요~
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
파이어베이스 익명로그인 수강 중 에러 해결후기(feat. sdk33)
계속 실행이 안되어 오류 메세지(3 issues were found when checking AAR metadata:) 확인해보니compileSdk 와 targetSdk 뒤 버전을 33을 예시로 변경하여 해보라고 나오길래 해봤는데 해결은 됬습니다.에러메세지 중 일부 입니다.(파파고 번역) 종속성 'androidx.core:core:1.9.0'을 사용하려면 33 또는 그 이후의 버전에 대해 컴파일하는 데 의존합니다. Android API. :앱은 현재 안드로이드-32에 대해 컴파일되어 있다. 권장 조치: 최신 compileSdkVersion을 사용하도록 이 프로젝트 업데이트 최소 33개(예: 33개)입니다. 라이브러리 또는 응용 프로그램의 compileSdkVersion(다음 중)을 업데이트합니다. 새로운 API를 사용할 수 있음)을 업데이트와 별도로 수행할 수 있습니다. targetSdkVersion(앱을 새로운 런타임 동작으로 선택) 및 minSdkVersion(앱을 설치할 수 있는 장치를 결정합니다) 켜짐)상기 에러 해결 코드android { namespace 'com.lst.fb_login_test' compileSdk 33 //32->33 변경부분 defaultConfig { applicationId "com.lst.fb_login_test" minSdk 21 targetSdk 33 //32->33 변경부분 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" }
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
리사이클뷰....친해져보자~!ㅠㅜ(feat. 아이템 간격 조절)
리사이클 뷰 때문에 윤활유가 안 발라진 톱니바퀴처럼 잘 안돌아가네요ㅠㅜ강의와는 다르게 리사이클 뷰 작성 시 아이템들의 거리가 매우 길어 코드를 몇번 비교했는지 모르겠네요ㅠㅜ정확한 원인은 모르겠지만 os의 차이 혹은 안드로이드 스튜디오의 버전 차이 일 수도???혹시 수강 하시는 분들 중에 리사이클뷰의 아이템들이 거리가 매우 길게 나올 경우아래 코드 참고 하시면 좋을 것 같습니다~!override fun onBindViewHolder(holder: RVAdapter.ViewHolder, position: Int) { holder.bindItems(items[position]) val layoutParams = holder.itemView.layoutParams layoutParams.height = 100 holder.itemView.requestLayout() }참조 링크 : https://odomm.tistory.com/entry/Kotlin-%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-Recyclerview-%EC%95%84%EC%9D%B4%ED%85%9C-%EA%B0%84%EA%B2%A9-%EA%B5%AC%EB%B6%84%EC%84%A0-%ED%91%9C%EC%8B%9C
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
트와이스 Androidmanifest.xml 에서 SplashActivity 조작이요
<activity android:name=".SpashActivity" android:exported="false"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <meta-data android:name="android.app.lib_name" android:value="" /> </activity> <activity android:name=".MainActivity" android:exported="true"> <meta-data android:name="android.app.lib_name" android:value="" /> </activity>일단 안드로이드 돌핀 버전(2021.3.1)기본적으로 AndroidManifest 화면에 진입했을 경우, 선생님께서 적어주신 화면과 조금 다른 게, android:exported = "false"meta-data 가 보이더라구요. 일단 선생님께서 말씀주신데로 intent-filter를 옮기긴 했는데, 실행 시 에뮬레이터에서 앱이 중단되었다고 나옵니다. ㅠ_ㅜ 이전 강의에서도 코드가 뭔가 미묘하게 다르게 표시되는 부분이 있었는데, 이게 안드로이드 스튜디오 버전의 문제일까요?
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
선생님 이건 무슨 문제인지요...
package com.maroner.bts_lecture import android.content.Intent import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.ImageView import android.widget.Toast class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // 1. 화면이 클릭되었다는 것을 알아야 합니다! (프로그램이) val image1 = findViewById<ImageView>(R.id.bts_image_1) image1.setOnClickListener { Toast.makeText(this, "1번 클릭 완료", Toast.LENGTH_LONG).show() // 2. 화면이 클릭되면, 다음화면으로 넘어가서, 사진을 크게 보여줌! val intent = Intent(this, bts1Activity::class.java) startActivity(intent) } 혹시 다른게 있나... 확인해 보려고 햇는데...다른건 없는것 같구요..이런식으로 뜹니다..
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
<ImageView> 부분을 처음 적었을때 작동하지 않습니다. 클릭해서 몰 활성화 했더니 되네요.
package com.maroner.bts_lecture import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.ImageView import android.widget.Toast class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // 1. 화면이 클릭되었다는 것을 알아야 합니다! (프로그램이) val image1 = findViewById<ImageView>(R.id.bts_image_1) image1.setOnClickListener { Toast.makeText(this,"1번 클릭 완료", Toast.LENGTH_LONG).show() } // 2. 화면이 클릭되면, 다음화면으로 넘어가서, 사진을 크게 보여줌! } }val image1 = findViewByID<ImageView>(R.id.bts_image_1) 여기서 <ImageView>가 처음에는 활성화가 안되서실행 버튼을 누르면 어플이 열리지가 않았어요혹시나해서 빨간색으로 되어있길래 클릭해서뜨는걸 눌러줫더니 실행되네요. 왜 처음에 활성화가 안되었는지 알고 싶구요.왜 선생님 화면에서는 바로 활성화가 되는데, 저는 몰 눌러줘야 실행되게끔 되는지 이유를 알고 싶습니다.
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
랜덤 명언 노출 기능 추가 수강 후 초기값 고정에 대하여
안드로이드 스튜디오의 버전이 달라서 그런 건지 정확한 원인은 모르겠지만 random() 을 쓸 경우 초기의 값이 똑같이 나와 검색해보니 아래와 같이 한다면 초기값부터 랜덤으로 나오는 것을 확인할 수 있었습니다.검색해보니 random() 은 규칙이 있다고 하더라구요. 혹시 저처럼 초기값이 계속 똑같이 나오거나 다르게 나오더라도 규칙이 예상 되지 않는 랜덤값을 넣고자 하시는 분은 아래 코드 참고 하시면 좋을 거 같습니다. import java.security.SecureRandom val secureRandom = SecureRandom() Log.d("MainActivity222", sentenceList[secureRandom.nextInt(sentenceList.size-1)]) binding = DataBindingUtil.setContentView(this,R.layout.activity_main) binding.showAllSentenceBtn.setOnClickListener { val intent = Intent(this, SentenceActivity2::class.java) startActivity(intent) } binding.goodWordTextArea.setText(sentenceList[secureRandom.nextInt(sentenceList.size-1)])
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
망고 플레이트 앱만들기 - title text가 null로 나옵니다.
파이어베이스에 url, imageurl은 잘나오는데 title text가 null로 나와요. 앱에도 그렇구요. 무엇을 잘못했을까요?
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
파이어베이스 리얼타임 데이터베이스 불러오기 - 질문
질문 : 파이어베이스 리얼타임 데이터베이스에 날짜와 메모가 입력이 잘되었는데 어플 창에는 날짜가 뜨지 않습니다.-adapter_list.notifyDataSetChanged()하기 전까지는 날짜가 잘 떳는데 그 다음부턴 날짜가 파이어베이스에만 입력되고 어플 창에는 뜨지 않습니다 ㅜㅜ 왜이런걸까요? -파이어베이스 리얼타임 데이터베이스에 입력이 잘됨문제 화면: 어플 화면에 날짜가 안뜸-MainActivity.kt 코드입니다 package com.ipari.diet_memo import android.app.DatePickerDialog import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log import android.view.LayoutInflater import android.widget.* import androidx.appcompat.app.AlertDialog import com.google.firebase.auth.ktx.auth import com.google.firebase.database.DataSnapshot import com.google.firebase.database.DatabaseError import com.google.firebase.database.ValueEventListener import com.google.firebase.database.ktx.database import com.google.firebase.ktx.Firebase import java.util.* class MainActivity : AppCompatActivity() { val dataModelList = mutableListOf<DataModel>() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val database = Firebase.database val myRef = database.getReference("myMemo") val listView = findViewById<ListView>(R.id.mainLV) val adapter_list = ListViewAdapter(dataModelList) listView.adapter= adapter_list Log.d("DataModel------", dataModelList.toString()) myRef.child(Firebase.auth.currentUser!!.uid).addValueEventListener(object : ValueEventListener{ override fun onDataChange(snapshot: DataSnapshot) { dataModelList.clear() for (dataModel in snapshot.children) { Log.d("Data", dataModel.toString()) dataModelList.add(dataModel.getValue(DataModel::class.java)!!) } adapter_list.notifyDataSetChanged() Log.d("DataModel", dataModelList.toString()) } override fun onCancelled(error: DatabaseError) { } }) val writeButton = findViewById<ImageView>(R.id.writeBtn) writeButton.setOnClickListener { val mDialogView = LayoutInflater.from(this).inflate(R.layout.custom_dialog, null) val mBuilder = AlertDialog.Builder(this) .setView(mDialogView) .setTitle("운동 메모 다이얼로그") val mAlertDialog = mBuilder.show() val DateSelectBtn = mAlertDialog.findViewById<Button>(R.id.dataSelectBtn) var dateText="" DateSelectBtn?.setOnClickListener { val today = GregorianCalendar() val year : Int = today.get(Calendar.YEAR) val month : Int = today.get(Calendar.MONTH) val date : Int = today.get(Calendar.DATE) val dlg = DatePickerDialog(this, object : DatePickerDialog.OnDateSetListener{ override fun onDateSet(view: DatePicker?, year: Int, month: Int, dayOfMonth: Int ) { Log.d("MAIN", "${year}, ${month +1}, ${dayOfMonth}") DateSelectBtn.setText("${year}, ${month +1}, ${dayOfMonth}") dateText = "${year}, ${month +1}, ${dayOfMonth}" } }, year, month, date) dlg.show() } val saveBtn = mAlertDialog.findViewById<Button>(R.id.saveBtn) saveBtn?.setOnClickListener { val healthMemo = mAlertDialog.findViewById<EditText>(R.id.healthMemo)?.text.toString() val database = Firebase.database val myRef = database.getReference("myMemo").child(Firebase.auth.currentUser!!.uid) val model = DataModel(dateText, healthMemo) myRef .push() .setValue(model) mAlertDialog.dismiss() } } } }
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
diet-memo 만들기 : 데이터베이스에 쓰기가 안됩니다.
안녕하세요 선생님 .'너무 잘 보고 있어요. 질문에도 대답해주셔서 넘 감사합니다.^^질문 : 앱도 정상적으로 작동하는데 Firebase 실시간 데이터베이스에 연동이 안됩니다.(에러 메서지도 안 뜹니다.) MainActivity.ktpackage com.ipari.diet_memo import android.app.DatePickerDialog import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log import android.view.LayoutInflater import android.widget.Button import android.widget.DatePicker import android.widget.EditText import android.widget.ImageView import androidx.appcompat.app.AlertDialog import com.google.firebase.database.ktx.database import com.google.firebase.ktx.Firebase import java.util.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val writeButton = findViewById<ImageView>(R.id.writeBtn) writeButton.setOnClickListener { val mDialogView = LayoutInflater.from(this).inflate(R.layout.custom_dialog, null) val mBuilder = AlertDialog.Builder(this) .setView(mDialogView) .setTitle("운동 메모 다이얼로그") val mAlertDialog = mBuilder.show() val DateSelectBtn = mAlertDialog.findViewById<Button>(R.id.dataSelectBtn) var dateText="" DateSelectBtn?.setOnClickListener { val today = GregorianCalendar() val year : Int = today.get(Calendar.YEAR) val month : Int = today.get(Calendar.MONTH) val date : Int = today.get(Calendar.DATE) val dlg = DatePickerDialog(this, object : DatePickerDialog.OnDateSetListener{ override fun onDateSet(view: DatePicker?, year: Int, month: Int, dayOfMonth: Int ) { Log.d("MAIN", "${year}, ${month +1}, ${dayOfMonth}") DateSelectBtn.setText("${year}, ${month +1}, ${dayOfMonth}") dateText = "${year}, ${month +1}, ${dayOfMonth}" } }, year, month, date) dlg.show() } val saveBtn = mAlertDialog.findViewById<Button>(R.id.saveBtn) saveBtn?.setOnClickListener { val healthMemo = mAlertDialog.findViewById<EditText>(R.id.healthMemo)?.text.toString() val database = Firebase.database val myRef = database.getReference("myMemo") val model = DataModel(dateText, healthMemo) myRef .push() .setValue(model) } } } }Gradle fileplugins { id 'com.android.application' id 'com.google.gms.google-services' id 'kotlin-android' } android { compileSdk 33 defaultConfig { applicationId "com.ipari.diet_memo" minSdk 21 targetSdk 33 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = '1.8' } } dependencies { implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' testImplementation 'junit:junit:4.+' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' implementation platform('com.google.firebase:firebase-bom:30.4.1') implementation 'com.google.firebase:firebase-analytics-ktx' implementation 'com.google.firebase:firebase-auth-ktx' implementation 'com.google.firebase:firebase-database-ktx' }custom_dialog. xml<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <EditText android:id="@+id/healthMemo" android:layout_width="match_parent" android:layout_height="60dp" android:layout_margin="20dp" android:hint="운동메모를 입력해주세요." android:background="@android:color/transparent"/> <LinearLayout android:layout_width="match_parent" android:background="#999999" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_height="0.5dp"/> <Button android:id="@+id/dataSelectBtn" android:text = "날짜를 선택해주세요." android:layout_margin="20dp" android:layout_width="match_parent" android:layout_height="60dp"/> <Button android:id="@+id/saveBtn" android:text = "저장하기" android:textColor="@color/black" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:layout_width="match_parent" android:layout_height="60dp"/> </LinearLayout> _____그리고 다른 분들은 코드 올릴 때 텍스트형식이 아닌 일정한 형식으로 올리시던데 어떻게 하는건가요? ㅎㅎ
- 해결됨[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
android studion 종료했다가 키면 항상 이전 파일이 떠요.
New Project 만들기가 뜨도록 설정하려면 어떻게 해야하나요?맥북입니다. +그리고 선생님처럼 코드 한 줄 수정할 때 마우스로 드래그 하지 않고 지우려면 어떻게 해야 하나요?저는 단어 단위로만 지워져서 ... ctrl+a는 전체가 지워지고.. 코드 한 줄만 지워질 수는 없나요?
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
임포트 버튼이 안 뜹니다(프로젝트 모듈이 자바..)
이렇게 빨간 색이고 임포트 창이 안 뜨는데요gradle부분이고프로젝트 모듈 설정에 빨간색이 뜨는데 저는 자바만 있고 kotlin 1.3이 없어요https://hsmin.tistory.com/m/entry/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4-auto-import-%EC%95%88%EB%90%A0%EB%95%8C-%EB%8B%A4-%ED%95%B4%EB%B4%A4%EB%8A%94%EB%8D%B0-%EC%95%88%EB%90%A0%EB%95%8C참고 블로그
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
임포트 버튼이 안뜹니다.
주사위 앱 마지막 강의 02:56부분을 보고 있습니다.그런데 ActivityMainBinding 과 DataBindingUtil 에서 빨간 글씨를 없애는 임포트 버튼이 생기지 않습니다. (옵션+앤터키를 눌러두 안되어요) 왜 이런 걸까요?
- 해결됨[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
자동완성이 안됩니다. (Linear layout)
linear layout 을 치면 </LinearLayout> 닫는 것과, android:layout_width, android:layout_height= 이 창이 안 뜹니다. 선생님은 자동으로 뜨는데 저는 왜 안 될까요?