묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
리스트뷰/어댑터 강의 관련 질문 있습니다.
안녕하세요?선생님 강의에서는 포지션이 빨갛게 나오지 않았는데제 것은 포지션이 빨갛게 뜹니다.옵션 엔터하면 될까요?감사합니다.
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
리사이클러 뷰 안보임
안녕하세요 개발자님! 왕초보편 수강하고있는 대학생입니다. 다름이아니라 개발자님의 앱 개발 왕초보편 강의 중 트로트 가수 앱 만들기를 조금 변형시켜서, 프래그먼트에서 객체 데이터를 전달받고 보여주는 리사이 클러 뷰를 만들어 보려고 했습니다.근데 실행시켜 보니 딱히 오류는 뜨지 않지만, 리사이클러 뷰가 보이지 않는 현상을 겪고 있어서 질문드립니다!도와주시면 감사하겠습니다! 구글 드라이브 : https://drive.google.com/file/d/1hiygqt0gl78embhelzkivfPbgyDGb3WV/view?usp=drive_linkadapterpackage com.wosong.musiclist import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.ImageView import android.widget.TextView import androidx.recyclerview.widget.RecyclerView class RVAdapter(val context: MutableList<RVdata>) : RecyclerView.Adapter<RVAdapter.ViewHolder>(){ var data = mutableListOf<RVdata>() override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RVAdapter.ViewHolder { val view = LayoutInflater.from(parent.context).inflate(R.layout.rv_item,parent,false) return ViewHolder(view) } override fun onBindViewHolder(holder: RVAdapter.ViewHolder, position: Int) { holder.bindItems(data[position]) } override fun getItemCount(): Int { return data.size } inner class ViewHolder(itemView : View) : RecyclerView.ViewHolder(itemView){ fun bindItems(item : RVdata){ val rv_text = itemView.findViewById<TextView>(R.id.rvTextId) rv_text.text = item.text val image = itemView.findViewById<ImageView>(R.id.itemimage) image.setImageResource(item.img) } } } data classpackage com.wosong.musiclist data class RVdata( val text : String, val img : Int ) item_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="50dp"> <ImageView android:layout_width="50dp" android:layout_height="match_parent" android:src="@drawable/zino" android:id="@+id/itemimage" /> <TextView android:layout_margin="10dp" android:textStyle="bold" android:text="List of songs" android:id="@+id/rvTextId" android:textSize="20sp" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout> fragmentpackage com.wosong.musiclist import android.os.Bundle import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.ImageView import androidx.navigation.findNavController import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView class sing1Fragment : Fragment() { // TODO: Rename and change types of parameters override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) } override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { // Inflate the layout for this fragment val view = inflater.inflate(R.layout.fragment_sing1, container, false) val items : MutableList<RVdata> = mutableListOf() items.add(RVdata(img = R.drawable.jazzyfact,text = "A tribe called jazzyfact")) items.add(RVdata(img = R.drawable.jazzyfact,text = "A tribe called jazzyfact")) items.add(RVdata(img = R.drawable.jazzyfact,text = "A tribe called jazzyfact")) val rv = view.findViewById<RecyclerView>(R.id.JazzyFactView) val rvAdapter = RVAdapter(items) rv.adapter = rvAdapter rv.layoutManager = LinearLayoutManager(context) view.findViewById<ImageView>(R.id.image2).setOnClickListener{ it.findNavController().navigate(R.id.action_sing1Fragment_to_sing2Fragment) } view.findViewById<ImageView>(R.id.image3).setOnClickListener{ it.findNavController().navigate(R.id.action_sing1Fragment_to_sing3Fragment) } return view } }
-
해결됨[Bloc 응용] 실전 앱 만들기 (책 리뷰 앱) : SNS 로그인, Firebase 적용, Bloc 상태 관리, GoRouter
17강 진행중입니다..
강의 순서대로 따라하고 있는데구글 sns 등록하고 시뮬레이터 켜보니 Class 'StatelessElement' has no instance method 'read'.Receiver: Instance of 'StatelessElement'Tried calling: read<AuthenticationCubit>() 란 오류가 뜨네요 ㅠ찾아보니 밑 login_page 중 밑 read 부분인 것 같긴한데 정확히 모르겠습니다 ㅠWidget _appleLoginBtn(BuildContext, context) { return GestureDetector( onTap: context.read<AuthenticationCubit>().appleLogin(), child: Container(
-
해결됨[Bloc 응용] 실전 앱 만들기 (책 리뷰 앱) : SNS 로그인, Firebase 적용, Bloc 상태 관리, GoRouter
cloud Firestore 설정
FireStore Database에 들어가서 데이터베이스 생성하기 누르고 설정했는데 오류가 나더니이렇게 뜨네요,, 이런 경우 어떻게 해야 할까요,,?
-
미해결따라하며 배우는 리액트, 파이어베이스 - 채팅 어플리케이션 만들기[2023.12 리뉴얼]
파이어베이스 파일 삭제, 사진 업로드 기능 오류
강의를 따라서 어플을 완성한 뒤에 파이어베이스를 만지다가실수로 파이어베이스 파일들을 전부 삭제 시켰습니다.그래서 다시 실행시켜보니 리얼타임 데이터베이스의파일들은 다시 생성이 되어서 채팅기능이 잘 작동하지만storage의 message/ 파일이 다시 생성이 되지않아사진 업로드 기능이 작동되지 않습니다.이거 혹시 해결 방법이 있을까요?밑에는 사진 업로드 눌렀을 때 나오는 오류 코드입니다
-
해결됨[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
주사위앱 관련해서 질문 있습니다!
안녕하세요?오늘도 선생님 강의와 똑같이 따라한 것 같은데주사위가 선생님 버전보다 밑에 있고 버튼은 더 밑에 있어서 보이지 않습니다.혹시 해결 방법을 알고 계시면 알려 주시면 감사하겠습니다.풍요로운 한가위 보내시기를 바라고 항상 감사드립니다. 그리고 제 코드는<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#008000" android:orientation="vertical" tools:context=".MainActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="200dp" android:layout_marginTop="100dp"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="30sp" android:textColor="@color/black" android:layout_margin="20dp" android:gravity="center" android:textStyle="bold" android:text="인생은 주사위 한방에 가는 거 아니겠습니까?"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="200dp"> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="200dp" android:weightSum="2"> <ImageView android:src="@drawable/dice_1" android:layout_width="120dp" android:layout_height="120dp" android:layout_weight="1"/> <ImageView android:src="@drawable/dice_2" android:layout_width="120dp" android:layout_height="120dp" android:layout_weight="1"/> </LinearLayout> <Button android:text="인생 고고" android:layout_width="match_parent" android:background="@color/black" android:textColor="@color/white" android:layout_height="50dp" android:layout_margin="50dp"/> </LinearLayout>입니다!
-
미해결따라하며 배우는 리액트, 파이어베이스 - 채팅 어플리케이션 만들기[2023.12 리뉴얼]
firebase 초기화 오류
firebase에 이메일로 회원가입 기능 구현 강의를 듣고 있는데이메일과 이름 비밀번호를 입력하고 제출을 누르면 Firebase: No Firebase App '[DEFAULT]' has been created - call initializeApp() first (app/no-app). 이런 오류 코드가 나오면서 firebase에 저장이 되지 않는데 뭐가 문제일까요
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
BTS 앱 이후 트와이스 앱을 실행 문의
트와이스 앱을 수정 실행 하면 왜 BTS의 매인 activity가 먼저 보여주고 트아와이스가 실행 되는지요?강사님 강의에서도 그렇게 되는데 궁급합니다분명 소스는 따로 존재하고 실행도 따로 하는데 앱이 하나 같이 보입니다.
-
해결됨[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
로그 관련 질문입니다!
안녕하세요?선생님 강의와 똑같이 기입한 것 같은데선생님 화면에는 간단하게 "여기는 테스트 값입니다"가 나오지만 저는 저렇게 장황하게 나옵니다.혹시 이유를 알려 주실 수 있을까요?감사합니다.
-
미해결[초중급편] 안드로이드 데이팅 앱 만들기(Android Kotlin)
섹션 1 : CardStackView 꾸미기에서의 작동원리 질문
섹션 1CardStackView 꾸미기에서 <FrameLayout android:id="@+id/left_overlay" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:layout_width="100dp" android:layout_height="100dp" android:layout_gravity="center" android:src="@drawable/no" /> </FrameLayout> <FrameLayout android:id="@+id/right_overlay" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:layout_width="100dp" android:layout_height="100dp" android:layout_gravity="center" android:src="@drawable/ok" /> </FrameLayout>이렇게 하면, 왜 왼쪽으로 넘기면 x 이미지가 오른쪽으로 넘기면 v 이미지가 나오는건가요?? com.yuyakaido.android.cardstackview.CardStackView에서의 작동원리로 인해서, 아이디를 left_overlay 으로 하면 왼쪽으로 넘겼을 때, 이런 작동이 일어나고, 아이디를 right_overlay 으로 하면 오른쪽으로 넘겼을 때, 이런 작동이 일어나게 되는건가요??그래서, 제가 left_overlay 아이디를 지우면, 왼쪽으로에 대한 작업이 안일어나더라구요.그래서, 작동원리가 궁금해서 질문드립니다.
-
해결됨[Bloc 응용] 실전 앱 만들기 (책 리뷰 앱) : SNS 로그인, Firebase 적용, Bloc 상태 관리, GoRouter
authentication_repository.dart 오류 질문합니다.
구글 로그인 버튼을 누르면 이런 오류가 뜨는데뭐가 잘못된 걸까요??
-
해결됨[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
데이터바인딩 질문 있습니다!
선생님 안녕하세요.질문을 많이 드리는 것 같아 죄송합니다.이렇게 오류가 뜨는데 해결방법을 알려 주시면 감사하겠습니다.감사합니다.
-
해결됨[Bloc 응용] 실전 앱 만들기 (책 리뷰 앱) : SNS 로그인, Firebase 적용, Bloc 상태 관리, GoRouter
signup_page.dart 오류 질문있습니다.
프로필 이미지 업로드 기능 개발 강의 듣는 중위와 같은 오류가 나는데어디 부분을 확인해야 할까요?
-
해결됨[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
질문 있습니다!
안녕하세요? 트와이스 앱 강의에서 이렇게 오류가 뜨는데혹시 해결 방법을 알려 주실 수 있을까요?감사합니다.
-
해결됨[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
트와이스 앱 관련해서 질문 있습니다.
안녕하세요? 강의를 보고 따라했는데 강사님의 앱 실행 화면과제 앱 실행 화면이 달라서 문의드립니다.맨 오른쪽에 있는 라인의 사진들이 비율이 맞지 않는 것처럼 보이는데,혹시 해결 방법이 있을까요?2. Toast를 기입하고 앱 실행을 했는데 에러가 났다고 하면서 실행이 되지 않는데 이것도 해결 방법이 있을까요?감사합니다.
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
태그 질문이요
이런식으로 CaredView를 이미지 뷰로 크게 감싸주면세개의 이미지가 둥글게 나와야 하는것 아닌가요? 왜 하나만 나오나요?
-
미해결[초중급편] 안드로이드 데이팅 앱 만들기(Android Kotlin)
강의에 나온 문서가 없어요.
'FCM소개' 강의 듣고있는데 거기서firebase cloud messaging이라고 검색을 해서 저도 같은 문서로 보이는곳을 찾았는데, dependency 넣는곳이 안보입니다.https://firebase.google.com/docs/cloud-messaging/android/client?hl=ko더 뒤적뒤적해보니까 'android > android 클라이언트 설정' 이 아닌 'android > 여러기기에 메세지 전송' 칸으로 들어가면 찾을 수 있었습니다만 잠깐 당황할수 있을 포인트일거같습니다!https://firebase.google.com/docs/cloud-messaging/android/send-multiple?hl=ko
-
미해결[초중급편] 안드로이드 데이팅 앱 만들기(Android Kotlin)
좋아요한 유저 정보가 안 불러와진다면(비동기 관련)
'내가 좋아요한 유저 정보 보기'강의에서는override fun onCreate(savedInstanceState: Bundle?) { getUserDataList() getMyLikeList() }이런식으로 썼는데 저는 똑같이해보니까 getUserDataList() 함수 안에 있는 아래 코드에서 likeUserList 가 비동기때문에 아직 들어오지 않았어서 에러가 났었습니다override fun onDataChange(dataSnapshot: DataSnapshot) { for (dataModel in dataSnapshot.children) { val user = dataModel.getValue(UserDataModel::class.java)!! if (likeUserList.contains(user.uid)) { userDataModel.add(dataModel.getValue(UserDataModel::class.java)!!) } }그래서 아래처럼 getMyLikeList() 가 모두 돈 후 likeUserList 가 다 채워지면 getUserDataList() 를 그때 실행시키는 방식으로 해결했습니다.override fun onCreate(savedInstanceState: Bundle?) { // getUserDataList() 삭제함 getMyLikeList() }private fun getMyLikeList() { FirebaseRef.userLikeRef.child(FirebaseAuthUtils.getUid()).addValueEventListener(object : ValueEventListener { override fun onDataChange(dataSnapshot: DataSnapshot) { for (dataModel in dataSnapshot.children) { likeUserList.add(dataModel.key.toString()) } getUserDataList() // 추가함 } override fun onCancelled(error: DatabaseError) { } }) }
-
미해결[초중급편] 안드로이드 데이팅 앱 만들기(Android Kotlin)
Notification 띄우기를 하는 중에 났던 에러들 입니다!
제가 났던에러입니다. 혹시 누군가 참고가 될수 있을까 해서 정리합니다!'매칭이 되면 Notification 띄우기' 를 수강중에저도 아래처럼 버전이 33 이상이어서compileSdkVersion 33 targetSdkVersion 33 앞강의인 '다음 강의부터 Notification이 나오지 않는다면?'를 보고 그대로했습니다.그와중에 임포트할게 있어서 아무생각 없이 임포트를했더니 안됐는데 알고보니 Manifest중에서도 (android)라고 써있는 놈을 임포트했어야 됐었습니다.코드가 아래처럼 임포트 되었으면 된겁니다!import android.Manifest그리고 두번째 에러는 알림보내는 코드였는데 저부분에 에러가나서 도저히 모르겠어서 구글링해서 private fun sendNotification() { try { var builder = NotificationCompat.Builder(this, "test_channel") .setSmallIcon(R.drawable.ic_launcher_background) .setContentTitle("매칭완료") .setContentText("매칭이 완료되었습니다 저사람도 나를 좋아해요") .setPriority(NotificationCompat.PRIORITY_DEFAULT) with(NotificationManagerCompat.from(this)) { notify(0, builder.build()) } } catch (e: SecurityException) { } }이런식으로 try-catch문을 쓰라고 해서 하긴했는데 일단 돌아가긴하는데 정확히 해결한지는 모르겠습니다! 이렇게 하는게 맞는건지 확인부탁드립니다!
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
D-DAY앱 디데이 계산에 오류가 있는데 해결하고싶어요
9월 19일과 9월 20일 선택 시 1일 차이로 잘 나옵니다.하지만 8월 31일과 9월 1일 선택 시 0일 차이로 나옵니다. Log찍어보면 두 날짜의 밀리초가 같게 나옵니다. 이유가 궁금합니다! (다른 방법 찾아서 해도 밀리초를 변환해서 계산하는 방법은 다 같은 결과가 나왔습니다.) package com.yndoo.dday import android.app.DatePickerDialog import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log import android.widget.Button import android.widget.DatePicker import android.widget.TextView import org.w3c.dom.Text import java.text.SimpleDateFormat import java.util.Calendar import java.util.GregorianCalendar import java.util.concurrent.TimeUnit class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val startButton = findViewById<Button>(R.id.startBtn) val endButton = findViewById<Button>(R.id.endBtn) var startDate = "" var endDate = "" var calendar_start = Calendar.getInstance() var calendar_end = Calendar.getInstance() startButton.setOnClickListener { val today = GregorianCalendar() val year = today.get(Calendar.YEAR) val month = today.get(Calendar.MONTH) val day = today.get(Calendar.DATE) val dlg = DatePickerDialog(this, object: DatePickerDialog.OnDateSetListener{ override fun onDateSet(view: DatePicker?, year: Int, month: Int, dayOfMonth: Int) { startDate = "${year}${month+1}${dayOfMonth}" Log.d("날짜확인1",startDate) calendar_start.set(year, month+1, dayOfMonth) calendar_start.apply { set(Calendar.HOUR_OF_DAY, 0) set(Calendar.MINUTE, 0) set(Calendar.SECOND, 0) set(Calendar.MILLISECOND, 0) } } }, year, month, day) dlg.show() } endButton.setOnClickListener { val today = GregorianCalendar() val year = today.get(Calendar.YEAR) val month = today.get(Calendar.MONTH) val day = today.get(Calendar.DATE) val dlg = DatePickerDialog(this, object: DatePickerDialog.OnDateSetListener{ override fun onDateSet(view: DatePicker?, year: Int, month: Int, dayOfMonth: Int) { endDate = "${year}${month+1}${dayOfMonth}" Log.d("날짜확인2",endDate) calendar_end.set(year, month+1, dayOfMonth) calendar_end.apply { set(Calendar.HOUR_OF_DAY, 0) set(Calendar.MINUTE, 0) set(Calendar.SECOND, 0) set(Calendar.MILLISECOND, 0) } val finalDate = TimeUnit.MILLISECONDS.toDays(calendar_end.timeInMillis - calendar_start.timeInMillis) + 1 //val finalDate = (calendar_end.timeInMillis - calendar_start.timeInMillis)/(24*60*60*1000) + 1 Log.d("@@@",TimeUnit.MILLISECONDS.toDays(calendar_start.timeInMillis).toString()) Log.d("@@@",TimeUnit.MILLISECONDS.toDays(calendar_end.timeInMillis).toString()) findViewById<TextView>(R.id.ddayText).setText("D+" + finalDate.toString()) } }, year, month, day) dlg.show() } } }