묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Vue 3 & Firebase 10 커뮤니티 만들기 풀스택 - "활용편" (with Pinia, Quasar, Tiptap, VueUse)
깃허브 링크 있나요??
강의마다 변경사항 확인하고 싶습니다!
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
FireBase 로드와 파일 경로 관련 질문
여기서 강의 '예제앱 만들기 1' 에서 res > layout 파일에서 xml 파일이 있어야 하는데 layaout 파일이 없어요.그리고 그 오른쪽 상단에 스타트 버튼도 비활성화 되어있는데 이것도 왜 그런지 모르겠어요.그리고plugins { id("com.android.application") id("org.jetbrains.kotlin.android") id("com.google.gms.google-services") } android { namespace = "com.example.myfirebaseapp" compileSdk = 33 defaultConfig { applicationId = "com.example.myfirebaseapp" minSdk = 24 targetSdk = 33 versionCode = 1 versionName = "1.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" vectorDrawables { useSupportLibrary = true } } buildTypes { release { isMinifyEnabled = 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" } buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.4.3" } packaging { resources { excludes += "/META-INF/{AL2.0,LGPL2.1}" } } } dependencies { implementation("androidx.core:core-ktx:1.9.0") implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.6.2") implementation("androidx.activity:activity-compose:1.7.0") implementation(platform("androidx.compose:compose-bom:2023.03.00")) implementation("androidx.compose.ui:ui") implementation("androidx.compose.ui:ui-graphics") implementation("androidx.compose.ui:ui-tooling-preview") implementation("androidx.compose.material3:material3") testImplementation("junit:junit:4.13.2") androidTestImplementation("androidx.test.ext:junit:1.1.5") androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") androidTestImplementation(platform("androidx.compose:compose-bom:2023.03.00")) androidTestImplementation("androidx.compose.ui:ui-test-junit4") debugImplementation("androidx.compose.ui:ui-tooling") debugImplementation("androidx.compose.ui:ui-test-manifest") implementation(platform("com.google.firebase:firebase-bom:32.7.0")) implementation("com.google.firebase:firebase-analytics") }Firebase 로드가 조금 많이 바뀐거 같은데요, build.gradle.kts (module :app) 이 파일에 이런식으로 로드 하는게 맞나요..?
-
미해결MERN STACK 커뮤니티 : 시작부터 배포까지 알려주는 React
도와주세요
App - state값을 배열로 헀는 이에럭 뜨는데 콘솔로 찍어보면 프롭으로 넘긴 값이 객체로 들어오던데 왜그러는걸까요?
-
해결됨Flutter로 SNS 앱 만들기
댓글 입력시 오류
안녕하세요 강의 잘 듣고 있습니다.강의에서 배운 내용을 토대로 다른 프로젝트에 적용하려 합니다. 그런데 댓글을 올릴 때 아래처럼 오류가 뜨는데 뭐가 문제일까요..?
-
미해결풀스택 리액트 라이브코딩 - 간단한 쇼핑몰 만들기
깃허브에서 선생님께서 올리신 파일 받아,, 실행시켜보려했으나 안됩니다
yarn dev하면 사이트 떠야하는데;; 왜 안될가요??
-
미해결풀스택 리액트 라이브코딩 - 간단한 쇼핑몰 만들기
상품목록페이지만들기에서 ... 막힙니다..
선생님~!! 상품목록페이지가 안뜹니다 ㅠㅠ뭘 잘못한걸까요?? app.tsx파일엔 아래와 같이 입력했습니다.import { QueryClientProvider } from 'react-query' import { useRoutes } from 'react-router-dom' import { getClient } from './queryClient' import { routes } from './routes' import { ReactQueryDevtools } from 'react-query/devtools' const App = () => { const elem = useRoutes(routes) const queryClient = getClient() return ( <QueryClientProvider client={queryClient}> {elem} <ReactQueryDevtools initialIsOpen={false} /> </QueryClientProvider> ) } export default Appimport { QueryClient } from 'react-query' // import { getTodos, postTodo } from '../my-api' type AnyOBJ = { [key: string]: any }; export const getClient = (() => { let client: QueryClient | null = null return () => { if (!client) client = new QueryClient({}) return client } })() const BASE_URL = "https://fakestoreapi.com" export const fetcher = async ({ method, path, body, params, }: { method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH"; path: string; body?: AnyOBJ; params?: AnyOBJ; }) => { const url = `${BASE_URL}${path}`; const fetchOptions: RequestInit = { method, headers: { "Content-Type": "application/json", "Access-Control-Allow-Origin": BASE_URL, }, }; try { const res = await fetch(url, fetchOptions); const json = await res.json(); return json; } catch (err) { console.error(err); } }; export const QueryKeys = { PRODUCTS: "PRODUCTS", };
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
실시간데이터베이스에 안떠요..6:15초
6분15초에서 하는 list를 누르면 파이어베이스에 뭔가 생기는데 저는 안생겨요..이렇게 생기지 않습니다.....package com.bokchi.mysolelife.contentsList import android.content.Intent import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.view.View import android.widget.Toast import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.bokchi.mysolelife.R import com.google.firebase.Firebase import com.google.firebase.database.database class ContentListActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_content_list) val database = Firebase.database val myRef = database.getReference("message") myRef.setValue("Hello, World!") val rv : RecyclerView = findViewById(R.id.rv) val items = ArrayList<ContentModel>() items.add(ContentModel("title1", "https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FblYPPY%2Fbtq66v0S4wu%2FRmuhpkXUO4FOcrlOmVG4G1%2Fimg.png", "https://philosopher-chan.tistory.com/1235")) items.add(ContentModel("title2", "https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FznKK4%2Fbtq665AUWem%2FRUawPn5Wwb4cQ8BetEwN40%2Fimg.png", "https://philosopher-chan.tistory.com/1236")) items.add(ContentModel("title3", "https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbtig9C%2Fbtq65UGxyWI%2FPRBIGUKJ4rjMkI7KTGrxtK%2Fimg.png","https://philosopher-chan.tistory.com/1237")) items.add(ContentModel("title4", "https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcOYyBM%2Fbtq67Or43WW%2F17lZ3tKajnNwGPSCLtfnE1%2Fimg.png", "https://philosopher-chan.tistory.com/1238")) items.add(ContentModel("title5", "https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fekn5wI%2Fbtq66UlN4bC%2F8NEzlyot7HT4PcjbdYAINk%2Fimg.png", "https://philosopher-chan.tistory.com/1239")) items.add(ContentModel("title6", "https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F123LP%2Fbtq65qy4hAd%2F6dgpC13wgrdsnHigepoVT1%2Fimg.png", "https://philosopher-chan.tistory.com/1240")) items.add(ContentModel("title7", "https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fl2KC3%2Fbtq64lkUJIN%2FeSwUPyQOddzcj6OAkPKZuk%2Fimg.png", "https://philosopher-chan.tistory.com/1241")) items.add(ContentModel("title8", "https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmBh5u%2Fbtq651yYxop%2FX3idRXeJ0VQEoT1d6Hln30%2Fimg.png", "https://philosopher-chan.tistory.com/1242")) items.add(ContentModel("title9", "https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlOnja%2Fbtq69Tmp7X4%2FoUvdIEteFbq4Z0ZtgCd4p0%2Fimg.png", "https://philosopher-chan.tistory.com/1243")) items.add(ContentModel("title10", "https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNNrYR%2Fbtq64wsW5VN%2FqIaAsfmFtcvh4Bketug9m0%2Fimg.png", "https://philosopher-chan.tistory.com/1244")) items.add(ContentModel("title11", "https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FK917N%2Fbtq64SP5gxj%2FNzsfNAykamW7qv1hdusp1K%2Fimg.png", "https://philosopher-chan.tistory.com/1245")) items.add(ContentModel("title12", "https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeEO4sy%2Fbtq69SgK8L3%2FttCUxYHx9aPNebNwkPcI21%2Fimg.png", "https://philosopher-chan.tistory.com/1246")) items.add(ContentModel("title13", "https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdIKDG%2Fbtq64M96JFa%2FKcJiYgKuwKuP3fIyviXm90%2Fimg.png", "https://philosopher-chan.tistory.com/1247")) items.add(ContentModel("title14", "https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFtY3t%2Fbtq65q6P4Zr%2FWe64GM8KzHAlGE3xQ2nDjk%2Fimg.png", "https://philosopher-chan.tistory.com/1249")) items.add(ContentModel("title15", "https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOtaMq%2Fbtq67OMpk4W%2FH1cd0mda3n2wNWgVL9Dqy0%2Fimg.png", "https://philosopher-chan.tistory.com/1250")) val rvAdapter = ContentRVAdapter(baseContext, items) rv.adapter = rvAdapter rv.layoutManager = GridLayoutManager(this, 2) rvAdapter.itemClick = object : ContentRVAdapter.ItemClick { override fun onClick(view: View, position: Int) { Toast.makeText(baseContext, items[position].title, Toast.LENGTH_LONG).show() val intent = Intent(this@ContentListActivity, ContentShowActivity::class.java) intent.putExtra("url", items[position].webUrl) startActivity(intent) } } } }메세지 나야되는거 적었습니다...그런데도 안떠요
-
미해결풀스택 리액트 라이브코딩 - 간단한 쇼핑몰 만들기
강의 시점과 지금시점이 꽤 달라진게 있는거 같아요
업데이트 해주시면 정말 감사합니다 ㅠㅠ
-
해결됨Flutter로 SNS 앱 만들기
프로바이더 등록시 문제.
안녕하세요 강의 잘 듣고, 보고 있습니다<상태관리 등록후, 회원가입테스트 >코드 따라가던 중 첨부한 파일과 같은 오류가 발생하였습니다. 말그대로 클래스명을 변경하여, 우선 해결은 한거 같은데위와 같은 오류가 나는 원인 뭔지 궁금합니다. 감사합니다.
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
rv이 할때 에러가...
package com.bokchi.mysolelife.contentsList import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import androidx.recyclerview.widget.RecyclerView import com.bokchi.mysolelife.R class ContentListActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_content_list) val rv : RecyclerView = findViewById(R.id.rv) //여기 R.id.rv이 할때 rv가 에러가 나요 val items = ArrayList<String>() items.add("a") items.add("b") items.add("c") val rvAdapter = ContentRVAdapter(items) rv.adapter = rvAdapter } }왜 에러가 나는걸까요?
-
해결됨Flutter로 SNS 앱 만들기
깃 파일 받아서 바로 실행시켜보고 싶은데
깃 파일 받아서 바로 실행시켜보고 싶은데혹시 건드려야할 코드가 있을까요?
-
미해결MERN STACK 커뮤니티 : 시작부터 배포까지 알려주는 React
네이버 클라우드를 사용하지 않는 사람은 외부저장소~env 까지 따라하지 않아도 되죠?
궁금합니다
-
해결됨[2025 리뉴얼]플러터플로우로 코딩 없이 한달 안에 앱 만들기
[Bug?] Nav Bar가 보이지 않아요.
안녕하세요. 강의 보면서, 만들어 보던 중에 아래 2가지 이슈 발견되어 문의드립니다. 꼭 좀 알려주세요!!! Nav Bar : Run 화면에서 보이지 았아요. ㅠStack > Text : Align을 좌측 정렬하였으나, 적용되지 않아요.
-
미해결Flutter + Firebase로 넷플릭스 UI 클론 코딩하기 [무작정 플러터]
home screen에 찜하기가 바로 업데이트가 안되는 현상
detail screen에서 찜하기(like)를 누르고home screen으로 오면 상단에 바로 반영이 되야 하는데다른 탭에 갔다 와야지만 변경이 됩니다.어딘가 setstate를 해줘야 될거같은데 모르겠네요.
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
baseContext 동작안함
package com.nadeukcha.horse import android.app.LauncherActivity import android.os.Bundle import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.Button import androidx.navigation.findNavController import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.nadeukcha.horse.databinding.ActivityMainBinding class RacehorseDetailsFragment : Fragment() { private val items = mutableListOf<RacehorseModel>() 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_racehorse_details, container, false) items.add( RacehorseModel( "https://www.horsepia.com/hp/pa/hh/PAHH2010/search.do#none", "https://www.horsepia.com/hp/pa/ac/photoResizer.do?file=0047386&extend=l.jpg&width=312&height=191&type=3&hrsGbCd=00100&bfHrno=047386", "기적의돌풍" ) ) // items.add items.add( RacehorseModel( "https://www.horsepia.com/hp/pa/hh/PAHH2010/search.do#none", "https://www.horsepia.com/hp/pa/ac/photoResizer.do?file=0047386&extend=l.jpg&width=312&height=191&type=3&hrsGbCd=00100&bfHrno=047386", "기적의돌풍" ) ) // items.add items.add( RacehorseModel( "https://www.horsepia.com/hp/pa/hh/PAHH2010/search.do#none", "https://www.horsepia.com/hp/pa/ac/photoResizer.do?file=0047386&extend=l.jpg&width=312&height=191&type=3&hrsGbCd=00100&bfHrno=047386", "기적의돌풍" ) ) // items.add items.add( RacehorseModel( "https://www.horsepia.com/hp/pa/hh/PAHH2010/search.do#none", "https://www.horsepia.com/hp/pa/ac/photoResizer.do?file=0047386&extend=l.jpg&width=312&height=191&type=3&hrsGbCd=00100&bfHrno=047386", "기적의돌풍" ) ) // items.add val rv = view.findViewById<RecyclerView>(R.id.racehorseRv) val rvAdapter = RvAdapter(baseContext ,items) rv.adapter = rvAdapter // rv.layoutManager = LinearLayoutManager(context) rv.layoutManager = GridLayoutManager(context, 2) // 경기 내역 확인 view.findViewById<Button>(R.id.btn1).setOnClickListener { it.findNavController().navigate(R.id.action_racehorseDetailsFragment_to_matchdetailsFragment) } // 기수 상제 정보 view.findViewById<Button>(R.id.btn3).setOnClickListener { it.findNavController().navigate(R.id.action_racehorseDetailsFragment_to_riderDetailsFragment) } // 기록 정보 view.findViewById<Button>(R.id.btn4).setOnClickListener { it.findNavController().navigate(R.id.action_racehorseDetailsFragment_to_recordInfoFragment) } return view } }안녕하세요Fragment 강의에서 봤던 동작이랑 이번에 RecyclerView 강의를 합쳐서 화면을 만들어보고있었습니다그러던중 이번 강의 망고플레이트 앱 소개 및 레이아웃 - RecyclerView, Glide 강의의 24분 14초에 baseContext 추가하는 동작하를 하려고해는데 baseContext가 인식되지 않는 현상이있는데 따로 설정해줘야하는 부분이 있는건가요? baseContext를 넣으면 이런 오류가 나옵니다강의 내역과 조금 다른 질문인거같아 죄송합니다
-
해결됨Vue 3 & Firebase 10 커뮤니티 만들기 풀스택 - "활용편" (with Pinia, Quasar, Tiptap, VueUse)
vite-plugin-vue-layouts 종속성 충돌 관련
안녕하세요,vue-plugin-vue-layouts 설치 시 종속성 충돌 관련 에러가 발생합니다.(node 및 npm, 그리고 package.json 내용 모두 강좌와 동일하게 진행중입니다.) github issue를 보니 vite version 관련한 문제로 보인다, 4.0.0을 지원해달라 등의 이야기가 있습니다.혹시 저와 같은 문제를 겪으신 분은 안계실까요?이 때, vite 버전 문제 관련한 부분을 해결(?)한 사람이 있더라고요.https://github.com/charrue/vite-plugin-vue-layoutsa. 원본을 fork한 이 것을 프로젝트에 설치해서 사용 시에 문제가 될까요?b. a 방법보다는, 원본에 --force 옵션을 두고 설치하는 것이 더 나은 선택일까요?
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
웹뷰에서 사이트로 넘어갈 때 오류가 납니다.
package com.example.mango_content import android.content.Intent import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.view.View import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView class MainActivity : AppCompatActivity() { //데이터 넣을 리스트 변수 생성 private val items = mutableListOf<ContentsModel>() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // 리스트 데이터 // 데이터 클래스이기 때문에 차례대로 넣을 값만 넣어주면 된다 items.add( ContentsModel( "https://app.catchtable.co.kr/ct/shop/Quiver/shopPhotoList", "https://image.toast.com/aaaaaqx/rv/s4XU7ZHko4NjDEkULtFHbAA/231108173855775(0).jpeg", "퀴버(Quiver)" ) ) items.add( ContentsModel( "https://app.catchtable.co.kr/ct/shop/bistrogama/shopPhotoList?pickup-date=231207&pickup-time=0342", "https://image.toast.com/aaaaaqx/catchtable/shopinfo/s23522/23522_2221020170729696.jpg?detail750", "비스트로 가마" ) ) items.add( ContentsModel( "https://app.catchtable.co.kr/ct/shop/cucciolo_seoul/shopPhotoList?type=VISIT_RESERVATION&pickup-date=231207&pickup-time=0346", "https://ugc-images.catchtable.co.kr/rv/s7YDg2g4TxcuMPb-Eds2nKQ/4179dd6517aa48e1900c08e8c9c769a5", "쿠촐로 서울" ) ) items.add( ContentsModel( "https://app.catchtable.co.kr/ct/shop/schedule_seongsu/shopPhotoList?type=VISIT_RESERVATION&pickup-date=231207&pickup-time=0352", "https://ugc-images.catchtable.co.kr/rv/sXGZ4Ldt3lvBgj3V-4rxIsQ/e6ce38eef9ee412ca63da36dacabc57a", "스케줄 성수" ) ) items.add( ContentsModel( "https://app.catchtable.co.kr/ct/shop/Quiver/shopPhotoList", "https://image.toast.com/aaaaaqx/rv/s4XU7ZHko4NjDEkULtFHbAA/231108173855775(0).jpeg", "퀴버(Quiver)" ) ) items.add( ContentsModel( "https://app.catchtable.co.kr/ct/shop/bistrogama/shopPhotoList?pickup-date=231207&pickup-time=0342", "https://image.toast.com/aaaaaqx/catchtable/shopinfo/s23522/23522_2221020170729696.jpg?detail750", "비스트로 가마" ) ) items.add( ContentsModel( "https://app.catchtable.co.kr/ct/shop/cucciolo_seoul/shopPhotoList?type=VISIT_RESERVATION&pickup-date=231207&pickup-time=0346", "https://ugc-images.catchtable.co.kr/rv/s7YDg2g4TxcuMPb-Eds2nKQ/4179dd6517aa48e1900c08e8c9c769a5", "쿠촐로 서울" ) ) items.add( ContentsModel( "https://app.catchtable.co.kr/ct/shop/schedule_seongsu/shopPhotoList?type=VISIT_RESERVATION&pickup-date=231207&pickup-time=0352", "https://ugc-images.catchtable.co.kr/rv/sXGZ4Ldt3lvBgj3V-4rxIsQ/e6ce38eef9ee412ca63da36dacabc57a", "스케줄 성수" ) ) val recyclerview = findViewById<RecyclerView>(R.id.rv) val rvAdapter = RVAdapter(baseContext,items) recyclerview.adapter = rvAdapter // 아이템 클릭 처리 rvAdapter.itemClick = object : RVAdapter.ItemClick { override fun onClick(view: View, position: Int) { val intent = Intent(baseContext, ViewActivity::class.java) intent.putExtra("url", items[position].url ) startActivity(intent) } } recyclerview.layoutManager = GridLayoutManager(this,2) } }MainActivity.kt package com.example.mango_content import android.content.Context import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.ImageView import android.widget.TextView import androidx.appcompat.view.menu.MenuView.ItemView import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView.ViewHolder import com.bumptech.glide.Glide //viewmodel을 받을 것임 class RVAdapter(val context: Context, val List: MutableList<ContentsModel>) : RecyclerView.Adapter<RVAdapter.ViewHolder>() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RVAdapter.ViewHolder { val v = LayoutInflater.from(parent.context).inflate(R.layout.rv_item, parent, false) return ViewHolder(v) } // 웹뷰 클릭 이벤트 생성 interface ItemClick { fun onClick(view : View, position: Int) } var itemClick : ItemClick? = null override fun onBindViewHolder(holder: RVAdapter.ViewHolder, position: Int) { if (itemClick != null) { holder.itemView.setOnClickListener { v -> itemClick!!.onClick(v, position) } } holder.bindItems(List[position]) } override fun getItemCount(): Int { return List.size } inner class ViewHolder(itemView : View) : RecyclerView.ViewHolder(itemView) { fun bindItems(item : ContentsModel) { val rv_img = itemView.findViewById<ImageView>(R.id.rvImageArea) val rv_text = itemView.findViewById<TextView>(R.id.rvTextArea) rv_text.text = item.titleText Glide.with(context) .load(item.imageUrl) .into(rv_img) } } } RVAdapter.kt package com.example.mango_content import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.webkit.WebView class ViewActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_view) val webView = findViewById<WebView>(R.id.webView) webView.loadUrl(intent.getStringExtra("url").toString()) } }ViewActivity.kt<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <uses-permission android:name="android.permission.INTERNET" /> <application android:allowBackup="true" android:dataExtractionRules="@xml/data_extraction_rules" android:fullBackupContent="@xml/backup_rules" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.Mango_content" android:usesCleartextTraffic="true" tools:targetApi="31"> <activity android:name=".ViewActivity" android:exported="false" /> <activity android:name=".SplashActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".MainActivity" android:exported="true"></activity> </application> </manifest>manifest.xml실행 했을 시, 다음과 같은 오류가 일어납니다.망고플레이트가 서버 종료되어서 저는 캐치테이블 사이트를 이용하였습니다.오류 구글링하여 매니패스트에android:usesCleartextTraffic="true" 도 추가 하였는데 그대로 오류나서 질문 드립니다. ㅠㅠ
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
emailArea가 안나와요..
package com.bokchi.mysolelife.auth import android.database.DatabaseUtils import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Toast import androidx.databinding.DataBindingUtil import com.bokchi.mysolelife.R import com.bokchi.mysolelife.databinding.ActivityIntroBinding import com.google.firebase.Firebase import com.google.firebase.auth.FirebaseAuth import com.google.firebase.auth.auth class JoinActivity : AppCompatActivity() { private lateinit var binding: ActivityIntroBinding private lateinit var auth: FirebaseAuth override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) auth = Firebase.auth binding = DataBindingUtil.setContentView(this, R.layout.activity_join) binding.joinBtn.setOnClickListener { val email = binding.emailArea } // auth.createUserWithEmailAndPassword("abc@abc.com", "12341234") // .addOnCompleteListener(this) { task -> // if (task.isSuccessful) { // Toast.makeText(this, "성공", Toast.LENGTH_LONG).show() // } else { // Toast.makeText(this, "실패", Toast.LENGTH_LONG).show() // } // } } }여기 보면 선생님과 똑같이 했는데 emailArea을 이제 칠때 빨간색으로 뜨면서 안되요...<?xml version="1.0" encoding="utf-8"?> <layout> <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" tools:context=".auth.JoinActivity" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:background="@color/mainColor" android:layout_height="150dp"> <TextView android:text="회원가입" android:gravity="center" android:textStyle="bold" android:textColor="@color/black" android:textSize="20sp" android:layout_width="match_parent" android:layout_height="50dp"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="50dp" android:orientation="vertical"> <EditText android:id="@+id/emailArea" android:layout_width="match_parent" android:layout_height="50dp" android:hint="email" style="@style/AuthEditText"/> <LinearLayout android:layout_width="match_parent" android:background="#999999" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_height="0.5dp"/> <EditText android:id="@+id/passwordArea" android:layout_width="match_parent" android:layout_height="50dp" android:inputType="textPassword" android:hint="password" style="@style/AuthEditText"/> <LinearLayout android:layout_width="match_parent" android:background="#999999" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_height="0.5dp"/> <EditText android:id="@+id/passwordArea2" android:layout_width="match_parent" android:layout_height="50dp" android:inputType="textPassword" android:hint="password check" style="@style/AuthEditText"/> <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/joinBtn" android:layout_margin="20dp" android:background="@drawable/background_radius_yellow" android:text="회원가입하기" android:layout_width="match_parent" android:layout_height="50dp"/> </LinearLayout> </LinearLayout> </layout> 여기 ID emailArea 적어져 있습니다 그런데 왜(?) 이런 오류가 뜨는 것일가요?? 알려주세요...ㅠㅠ
-
해결됨풀스택 리액트 라이브코딩 - 간단한 쇼핑몰 만들기
상품목록 불러오기, 장바구니 삭제 에러 질문 드립니다
firebase 연동 후 client와 server 실행하여 구동 중 오류 발생하여 질문 드립니다.해당 에러를 찾아보니까 'createdAt' 필드를 중복으로 사용하고 있다고 GET_PRODUCTS 쿼리에서 'createdAt' 삭제하여도 역시 그대롭니다.server/src/resolvers/product.ts강의에 설명해주신 기존 코드대로 짜니까"'QueryStartAtConstraint' 형식의 인수는 'QueryOrderByConstraint' 형식의 매개 변수에 할당될 수 없습니다. 'type' 속성의 형식이 호환되지 않습니다. '"startAt" | "startAfter"' 형식은 '"orderBy"' 형식에 할당할 수 없습니다. '"startAt"' 형식은 '"orderBy"' 형식에 할당할 수 없습니다." 라는 에러가 떠서 주석 처리를 하고 수정을 하였는데 인터넷 검색해서 이것저것 고친거라 정확한건지 모르겠네요.장바구니 삭제 에러quertClient.ts 기존 코드에서 에러로 인해 수정했습니다.추가적으로 영상에 설명하신 코드와 현재 설치 버전 호환에 차이가 많아 오류가 생겨 수정해주었습니다client/src/components/cart/item.tsx // 기존 코드 const queryClient = getClient() const { mutate: updateCart } = useMutation( ({ id, amount }: { id: string; amount: number }) => graphqlFetcher(UPDATE_CART, { id, amount }), // 수정 const queryClient = getClient() const { mutate: updateCart } = useMutation<{ updateCart: CartType }, unknown, { id: string; amount: number }>( ({ id, amount }) => graphqlFetcher(UPDATE_CART, { id, amount }),client/src/pages/products/[id].tsx // 기존 코드 const { data } = useQuery<{ product: Product }>([QueryKeys.PRODUCTS, id], () => graphqlFetcher(GET_PRODUCT, { id }), ) // 수정 const { data } = useQuery<{ product: Product }>( [QueryKeys.PRODUCTS, id], () => graphqlFetcher(GET_PRODUCT, { id }), { select: (data) => data as { product: Product }, // 선택적으로 타입 캐스팅 } );위 코드들 외에도 수정한 부분이 여러군대인데 잘못된 코드 수정으로 인하여 오류가 발생하는 것인지 궁금합니다.
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
alt + 엔터를 했는데도 안나오면 어떻게 해야될까요?
Intent를 알트 + 엔터를 쳤을 때 안나오는데 어떻게 하면 나오는지 궁금합니다.