inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

이미지 안 뜰 때 해결법!

미해결

[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)

안녕하세요. 강의 잘 듣고 있습니다. 질문란을 보니 저와 같은 분들이 질문을많이 올려주셨는데, 해결책을 알려드리려고 합니다. INTERNET permission을 추가하고 앱을 실행한 다음에, 안드로이드 에뮬레이터에서 앱을 삭제하고 다시 실행 하셔야 정상적으로 이미지가 뜨는 것을 확인할 수 있습니다. 열공하세요!

  • android
  • kotlin
  • firebase
훈지손 댓글 4 좋아요 2 조회수 1112

마지막에 버튼 안되시는 분들

미해결

윤재성의 Kotlin 기반 안드로이드 앱 개발 Part 3 - 데이터관리와 네트워크

https://velog.io/@seokzoo/Drawble-Selector%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-Button-%EB%A7%8C%EB%93%A4%EA%B8%B0 참고하시면 도움되실겁니다.

  • kotlin
  • android
알파카 댓글 1 좋아요 1 조회수 305

댓글 삭제 기능 구현 질문

미해결

[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)

안녕하세요 강의를 열심히 듣고있는 수강생입니다! 다름이 아니라 댓글 불러오기 강의를 수강한 이후 게시판 삭제 기능처럼 댓글도 똑같이 자기가 작성한 댓글을 삭제하도록 구현해보고 있는데 난관에 봉착하여 질문드리게 됐습니다.. binding . deleteIcon .setOnClickListener { itemClickListener .onClick( it , position ) } val myUid = FBAuth.getUid() val writerUid = items [ position ]. commentUid if (myUid.equals(writerUid)){ binding . deleteIcon . isVisible = true } else { } } } interface OnItemClickListener { fun onClick (v: View , position: Int) } // (3) 외부에서 클릭 시 이벤트 설정 fun setItemClickListener (onItemClickListener: OnItemClickListener) { this . itemClickListener = onItemClickListener } // (4) setItemClickListener 로 설정한 함수 실행 private lateinit var itemClickListener : OnItemClickListener } 우선 commentrvadpater에서 댓글아이템에 내가 작성한 댓글에 uid가 같으면 삭제 아이콘이 보이게끔 하는걸 뷰홀더에 적용시켰고, 성공했습니다. commentAdapter .setItemClickListener( object : CommentRVAdapter.OnItemClickListener{ override fun onClick (v: View , position: Int) { FBRef. commentRef .child( key ).removeValue() Toast.makeText( this @BoardInsideActivity , " 댓글 삭제 완료 " , Toast. LENGTH_SHORT ).show() } }) 리사이클러뷰 클릭 이벤트를 boardinsideactivity 즉, 게시판 내부를 구현해주는 액티비티에 구현하여 삭제아이콘을 누르면 댓글이 삭제가 완료되고 토스트메시지까지 띄워졌습니다. 하지만 문제가 생겼습니다.. 위에서 삭제 아이콘을 누르면 게시판 내에 댓글이 모두 삭제됩니다. 리얼타임베이스 시점에서 보면 게시판 key값 내에 파란 부분만 삭제하고 싶은데 빨간부분 모두 삭제됩니다 ..ㅠ commentAdapter .setItemClickListener( object : CommentRVAdapter.OnItemClickListener{ override fun onClick (v: View , position: Int) { FBRef. commentRef .child( key ).removeValue() Toast.makeText( this @BoardInsideActivity , " 댓글 삭제 완료 " , Toast. LENGTH_SHORT ).show() } }) 아마 이 코드에서 child에 있는 key값을 지워주는게 아닌 다른 값을 지워줘야 되는게 문제인거 같은데 child 안에 무슨 값을 넣어줘야될지 잘 모르겠습니다... class BoardInsideActivity : AppCompatActivity() { private lateinit var binding : ActivityBoardInsideBinding private lateinit var key : String private val TAG = BoardInsideActivity:: class . java . simpleName private val CommentDataList = mutableListOf <CommentModel>() private lateinit var commentAdapter :CommentRVAdapter override fun onCreate (savedInstanceState: Bundle?) { super .onCreate(savedInstanceState) binding = ActivityBoardInsideBinding.inflate( layoutInflater ) setContentView( binding . root ) binding . boardSettingIcon .setOnClickListener { showDialog() } key = intent .getStringExtra( "key" ). toString () getBoardData( key ) getImageData( key ) binding . commentBtn .setOnClickListener { insertComment( key ) } getCommentData( key ) commentAdapter = CommentRVAdapter( this, CommentDataList ) binding . commentRV . adapter = commentAdapter binding . commentRV . layoutManager = LinearLayoutManager( this, LinearLayoutManager. VERTICAL , false ) binding . commentRV .addItemDecoration(DividerItemDecoration( this, DividerItemDecoration. VERTICAL )) commentAdapter .setItemClickListener( object : CommentRVAdapter.OnItemClickListener{ override fun onClick (v: View , position: Int) { FBRef. commentRef .child( key ).removeValue() Toast.makeText( this @BoardInsideActivity , " 댓글 삭제 완료 " , Toast. LENGTH_SHORT ).show() } }) } fun getCommentData (key:String){ val postListener = object : ValueEventListener { override fun onDataChange (dataSnapshot: DataSnapshot) { CommentDataList .clear() for (dataModel in dataSnapshot. children ) { Log.d( TAG , dataModel.toString()) dataModel. key val item = dataModel.getValue(CommentModel:: class . java ) CommentDataList .add(item!!) } commentAdapter .notifyDataSetChanged() } override fun onCancelled (databaseError: DatabaseError) { // Getting Post failed, log a message Log.w( TAG , "loadPost:onCancelled" , databaseError.toException()) } } FBRef. commentRef .child(key).addValueEventListener(postListener) } fun insertComment (key :String) { FBRef . commentRef .child(key) .push() .setValue( CommentModel( binding . commentArea . text .toString() , FBAuth.getTime() , FBAuth.getUid() ) ) Toast.makeText( this, " 입력 완료 " , Toast. LENGTH_SHORT ).show() binding . commentArea .setText( "" ) } private fun showDialog (){ val mDialogView = LayoutInflater.from( this ).inflate(R.layout. custom_dialog , null ) val mBuilder = AlertDialog.Builder( this ) .setView(mDialogView) .setTitle( " 게시글 수정 / 삭제 " ) val alertDialog = mBuilder.show() alertDialog.findViewById<Button>(R.id. editBtn )?.setOnClickListener { val intent = Intent( this, BoardEditActivity:: class . java ) intent.putExtra( "key" , key ) startActivity(intent) alertDialog.cancel() } alertDialog.findViewById<Button>(R.id. removeBtn )?.setOnClickListener { FBRef. boardRef .child( key ).removeValue() Toast.makeText( this, " 삭제 완료 " , Toast. LENGTH_SHORT ).show() finish() } } private fun getImageData (key: String){ // Reference to an image file in Cloud Storage val storageReference = Firebase. storage . reference .child(key + ".png" ) // ImageView in your Activity val imageViewFromFB = binding . getImageArea storageReference. downloadUrl .addOnCompleteListener( OnCompleteListener { task -> if (task. isSuccessful ){ Glide.with( this ) .load(task. result ) .into(imageViewFromFB) } else { binding . getImageArea . isVisible = false } } ) } private fun getBoardData (key: String) { val postListener = object : ValueEventListener { override fun onDataChange (dataSnapshot: DataSnapshot) { try { val dataModel = dataSnapshot.getValue(BoardModel:: class . java ) dataModel!!. title ?. let { Log.d( TAG , it ) } binding . titleArea . text = dataModel!!. title binding . textArea . text = dataModel!!. content binding . timeArea . text = dataModel!!. time binding . uidArea . text = dataModel!!. uid val myUid = FBAuth.getUid() val writerUid = dataModel . uid if (myUid.equals(writerUid)){ binding . boardSettingIcon . isVisible = true } else { } } catch (e:Exception){ Log.d( TAG , " 삭제완료 " ) } } override fun onCancelled (databaseError: DatabaseError) { // Getting Post failed, log a message Log.w( TAG , "loadPost:onCancelled" , databaseError.toException()) } } FBRef. boardRef .child(key).addValueEventListener(postListener) } } 이건 전체 코드입니다.

  • kotlin
  • firebase
  • android
김승우 댓글 2 좋아요 0 조회수 799

09:55 질문입니다!

미해결

[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)

- package com.daeyeon.fb_firebase_email_password_auth import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log import android.widget.Button import android.widget.EditText import android.widget.Toast import com.google.firebase.auth.FirebaseAuth import com.google.firebase.auth.ktx.auth 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 joinBtn = findViewById<Button>(R.id. joinBtn ) joinBtn.setOnClickListener { val email = findViewById<EditText>(R.id. emailArea ) val password = findViewById<EditText>(R.id. passwordArea ) Log.d( "MAIN" , email. text .toString()) Log.d( "MAIN" , password. text .toString()) auth .createUserWithEmailAndPassword(email. text .toString() , password. text .toString()) .addOnCompleteListener( this ) { task -> if (task. isSuccessful ) { // Sign in success, update UI with the signed-in user's information Toast.makeText( this, " 성공 " , Toast. LENGTH_LONG ).show() } else { // If sign in fails, display a message to the user. Toast.makeText( this, " 실패 " , Toast. LENGTH_LONG ).show() } } } } } 이메일 비번을 치고 회원가입을 누르면 자꾸 실패가 떠요!....

  • kotlin
  • firebase
  • android
D Y 댓글 2 좋아요 0 조회수 276

nextInt가 import가 안됩니다.

미해결

[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)

alt+enter를 눌러도 임포트가 계속 안되는데 혹시 이유를 알수 있을까요? 혹시 몰라 MainActivity의 코드를 첨부하겠습니다!감사합니다! package com.example.dice_app import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log import android.widget.Toast import androidx.databinding.DataBindingUtil import com.example.dice_app.databinding.ActivityMainBinding import java.util.* import kotlin.random.Random.Default.nextInt class MainActivity : AppCompatActivity() { private lateinit var binding : ActivityMainBinding override fun onCreate (savedInstanceState: Bundle?) { super .onCreate(savedInstanceState) setContentView(R.layout. activity_main ) binding = DataBindingUtil.setContentView( this, R.layout. activity_main ) val diceImage1 = binding . dice1 val diceImage2 = binding . dice2 binding . diceStartBtn .setOnClickListener { Toast.makeText( this, " 주사위 GO!" , Toast. LENGTH_LONG ).show() Log.d( "MainActivity" , Random.nextInt( 1 , 6 ).toString()) Log.d( "MainActivity" , Random.nextInt( 1 , 6 ).toString()) val number1 = Random.nextInt( 1 , 6 ) val number2 = Random.nextInt( 1 , 6 ) if (number1 == 1 ){ diceImage1.setImageResource(R.drawable. dice_1 ) } else if (number1 == 2 ){ diceImage1.setImageResource(R.drawable. dice_2 ) } else if (number1 == 3 ){ diceImage1.setImageResource(R.drawable. dice_3 ) } else if (number1 == 4 ){ diceImage1.setImageResource(R.drawable. dice_4 ) } else if (number1 == 5 ){ diceImage1.setImageResource(R.drawable. dice_5 ) } else { diceImage1.setImageResource(R.drawable. dice_6 ) } if (number2 == 1 ){ diceImage2.setImageResource(R.drawable. dice_1 ) } else if (number2 == 2 ){ diceImage2.setImageResource(R.drawable. dice_2 ) } else if (number2 == 3 ){ diceImage2.setImageResource(R.drawable. dice_3 ) } else if (number2 == 4 ){ diceImage2.setImageResource(R.drawable. dice_4 ) } else if (number2 == 5 ){ diceImage2.setImageResource(R.drawable. dice_5 ) } else { diceImage2.setImageResource(R.drawable. dice_6 ) } } } }

  • firebase
  • kotlin
  • android
정현종 댓글 1 좋아요 0 조회수 207

글 수정 단계에서 사진도 수정하려고 하다가 문제가 발생했습니다.

미해결

[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)

게시글 수정 단계에서 사진 또한 BoardWriteActivity에서와 마찬가지로 startActivityForResult 으로 변경할 수 있게 만들어보려고 했습니다. 그러나 이번에는 또 어떤 값이 전달되지 않는 것인지 NullPointerException 오류가 뜨고 있습니다. 이 코드를 복사해온 BoardWriteActivity는 정상작동하는 것을 보니 리퀘스트코드가 겹치는게 문제인가 싶어 바꿔주어 보아도 안되고 , setResult( RESULT_OK )등의 명령어를 통해 Result 값을 지정해보는 등의 시도는 해봤지만, 전혀 차도가 없습니다. 강의에서 하지 않은 것을 가고 만지작거리다가 질문드리는게 죄송하지만, 이 오류의 해결법에 대해 질문드려도 괜찮을까요? 우선 오류가 발생한 BoardEditActivity입니다. class BoardEditActivity : AppCompatActivity() { private lateinit var binding : ActivityBoardEditBinding private lateinit var key : String private lateinit var Wuid : String override fun onCreate (savedInstanceState: Bundle?) { super .onCreate(savedInstanceState) setContentView(R.layout. activity_board_edit ) binding = DataBindingUtil.setContentView( this, R.layout. activity_board_edit ) key = intent .getStringExtra( "key" ). toString () getBoardData( key ) getImageData( key ) binding . BEAPUSHbtn .setOnClickListener { editBoardText( key ) } binding . BEAIMG1 .setOnClickListener { val key = FBRef. boardRef .push(). key . toString () val gallery = Intent(Intent. ACTION_PICK , MediaStore.Images.Media. INTERNAL_CONTENT_URI ) startActivityForResult(gallery , 50 ) } } private fun getImageData (key: String) { Log.d( " 키값 검사 " , key.toString()) // Reference to an image file in Cloud Storage val storageReference = Firebase. storage . reference .child(key + ".png" ) // ImageView in your Activity val imageViewFromFB = binding . BEAIMG1 storageReference. downloadUrl .addOnCompleteListener( OnCompleteListener { task -> if (task. isSuccessful ) { Glide.with( this ) .load(task. result ) .into(imageViewFromFB) } else { Toast.makeText( this, " 이미지가 없습니다 " , Toast. LENGTH_LONG ).show() } } ) } private fun getBoardData (key: String) { val postListener = object : ValueEventListener { override fun onDataChange (dataSnapshot: DataSnapshot) { try { val dataModel = dataSnapshot.getValue(BoardModel:: class . java ) binding . BEAED1 .setText(dataModel!!. title ) binding . BEAED2Context .setText(dataModel!!. title ) Wuid = dataModel!!. uid } catch (e: Exception) { Log.d( " 삭제완료 " , "Delete" ) } } override fun onCancelled (databaseError: DatabaseError) { // Getting Post failed, log a message Log.w( TAG , "loadPost:onCancelled" , databaseError.toException()) } } FBRef. boardRef .child(key).addValueEventListener(postListener) } private fun editBoardText (key: String) { val time = firebaseauth.getTime() FBRef. boardRef .child(key) // .push() .setValue( BoardModel( binding . BEAED1 . text .toString() , binding . BEAED2Context . text .toString() , Wuid , time ) ) Toast.makeText( this, " 수정 완료 " , Toast. LENGTH_LONG ).show() finish() } override fun onActivityResult (requestCode: Int , resultCode: Int , data: Intent?) { super .onActivityResult(requestCode , resultCode , data) if (resultCode == RESULT_OK && requestCode == 50 ) { Log.d( " 데이터 체커 " , data. toString ()) val BEI1 = findViewById<ImageView>(R.id. BEI1 ) Glide.with( this ).load(data?. data ).into(BEI1) } } } 문제가 된다고 생각한 로그캣의 오류 페이지입니다. 4번째 줄의 로그가 잘렸는데, 혹시 잘린부분이 필요하실까 싶어 잘린부분의 로그도 올립니다. java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=50, result=-1, data=Intent { dat=content://com.google.android.apps.photos.contentprovider/-1/1/content://media/external/images/media/27/ORIGINAL/NONE/image/jpeg/1468372150 flg=0x1 clip={text/uri-list {...}} }} to activity {com.beyond.collect/com.beyond.collect.board.BoardEditActivity}: java.lang.NullPointerException: Argument must not be null

  • kotlin
  • android
  • firebase
최재훈 댓글 2 좋아요 0 조회수 467

데이터 가져오기 참조 질문

미해결

[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)

수업중에 1:23 에서 레퍼런스 주소를 가져온다고 하시면서 복사 붙여 넣기 하셨는데 그냥 통째로 잘라넣기 하면 왜 안되는지 궁금합니다. 그리고, 복사 - 붙여 넣기 후 save 버튼 클릭 리스너 안에서는 myRef에 user마다 개인적인 데이터베이스를 만들기 위해서 child()를 추가해주셨는데(14:54) , 1:27 (복사 - 붙여넣기 한) 위치 의 myRef에는 child() 속성(?)을 넣어주지 않아도 되나요?

  • firebase
  • android
  • kotlin
댓글 4 좋아요 0 조회수 435

주사위 6이 안 나와요

미해결

[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)

강의대로 잘 따라했는데요. 1~5까지는 나오는데 6은 안나옵니다. 강의 영상에도 6은 안 나오는 것 같은데, 왜 그럴까요?

  • firebase
  • android
  • kotlin
dudah754 댓글 2 좋아요 0 조회수 332

안녕하세요 영한님 @Transactional 및 open에 관하여 질문이 있습니다.

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

안녕하세요 영한님! 강의 내용을 코틀린 기반으로 작성해보고 있는데요! 조금 다른 부분들이 있긴 하지만 여러 리서치를 해보며 정상 동작하는 것들을 확인했는데 굉장히 특이한 문제를 만나서 조언을 구하고자 질문 드립니다. MemberService의 MemberRepository를 SpringConfig에서 의존성 주입을 해준 뒤 실제 메서드에서 해당 repository를 호출해보니 repository가 null이어서 접근할 수 없다는 메시지와 함께 에러가 발생하였습니다. 이에 대해 조금 조사해 본 결과 @Transactional를 추가하게 되면 구성된 의존성에 접근이 되지 않는 문제가 있었습니다. 그러나 이 생성자에서 받아온 의존성을 open 제한자로 변경하여 받아오면 접근이 되는 기묘한 현상이 발생하더군요! 관련해서 해결책을 찾은 경로는 여기였습니다. https://stackoverflow.com/questions/41298289/spring-boot-autowired-with-kotlin-in-service-is-always-null 혹시 강의 내용과는 조금 차이가 있지만 왜 이런 현상이 발생하는지 알 수 있을까요? 강의 너무 잘 듣고 있습니다. 항상 감사합니다!

  • kotlin
  • jpa
  • java
  • transactional
  • spring-boot
  • di
  • MVC
  • spring
  • bean
통통한 연어 댓글 1 좋아요 0 조회수 819

이미지가 기본이미지 인지 아닌지

미해결

[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)

이미지가 기본이미지 인지 아닌지 03:50초에 어떻게 구현해줄수있나요.왜냐면 개복치님이 말씀하신 2번째 로직은 이미지뷰를 클릭하고 취소를 하는 경우에는 이미지가 들어가있지 않지만 isImageUpload가 ture상태로 머물기때문에 결국에는 업로드됩니다 그래서 개복치님이 말씀해주신 첫번째 로직으로 구현해주고싶은데,첫번째 로직으로 만드는법도 추가해주시면 좋을거같습니다!! 여기서 말하는 첫번째 로직은 이미지가 기본이미지 인지 아닌지 이고 두번째 로직은 imageView가 클릭됬는지 안됬는지 입니다.

  • android
  • kotlin
  • firebase
신정용 댓글 2 좋아요 1 조회수 425

UserFragment.kt 에서 activity 오류

미해결

하울의 안드로이드 인스타그램 클론 만들기

첫번째 동그라미 activity는 저번강의에서 !! 넣었는데 오류뜨길래 지우니까 제대로 실행되어 했는데 밑에 activity 이번강의에서는 계속 오류 뜨고 프로필 사진이 안나옵니다 해결방법이 있을까요 .. ? 이렇게 오류 뜹니다.

  • android
  • kotlin
  • 클론코딩
dasda123 댓글 2 좋아요 0 조회수 270

3강 SHA - 1키를 넣는 방법 sputnik7565님의 SHA1 보충 설명입니다

미해결

하울의 안드로이드 인스타그램 클론 만들기

사용 설정을 한 후 빨간색으로 표시한 '프로젝트 설정'으로 갑니다. 이런 화면이 보이실 텐데 좀 더 내려 보시면 붉은색 부분이 비어져 있을 것입니다. 이쪽에 붙여 넣기를 하시면 됩니다.

  • 3강
  • android
  • SHA-1키넣기
  • kotlin
  • 클론코딩
crown880 댓글 1 좋아요 3 조회수 382

파이어베이스 -> Database가 아닌 Cloud Firebase입니다.

미해결

하울의 안드로이드 인스타그램 클론 만들기

파이어베이스 -> Database가 아닌 Cloud Firebase입니다. 업데이트 되어 영상과 좀 다릅니다. rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if request.auth.uid != null; } } }

  • kotlin
  • android
  • 클론코딩
김병관 댓글 0 좋아요 3 조회수 249

[개선코드]비밀번호 6자리일 땐 오류 납니다. 다음 코드 확인해주세요.

미해결

하울의 안드로이드 인스타그램 클론 만들기

// 회원가입 or 로그인하는 코드 fun signinAndSignup (){ auth ?.createUserWithEmailAndPassword(email_edittext. text .toString() , password_edittext. text .toString()) ?.addOnCompleteListener { task -> if (task. isSuccessful ){ println ( "_________________________________________task succesful" ) // creating a user account moveMainPage(task. result ?. user ) } else if (task. exception ?. message . isNullOrEmpty ()){ println ( "_________________________________________FUCKING ERROR" ) //show the error message Toast.makeText( this, task. exception ?. message , Toast. LENGTH_LONG ).show() } else { println ( "_________________________________________FUCKGING SIGNIN EMAIL" ) if (password_edittext. text .toString(). length < 6 ){ println ( "_________________________________________FUCKGING SIGNIN EMAIL_PASSWORD LENGTH PROBLEM" ) println ( "_______________________________________ ${ password_edittext. text .toString(). length } " ) Toast.makeText( this, " 패스워드는 최소 6 자리 이상이여야 합니다 . 다시 입력 바랍니다 ." , Toast. LENGTH_LONG ).show() } else { println ( "_________________________________________FUCKGING SIGNIN EMAIL_SIGNINEMAIL" ) println ( "_______________________________________ ${ password_edittext. text .toString(). length } " ) // login if you have account signinEmail() } } } } 프린트문은 지우고 하셔두 됩니다. // 회원가입 or 로그인하는 코드 fun signinAndSignup (){ auth ?.createUserWithEmailAndPassword(email_edittext. text .toString() , password_edittext. text .toString()) ?.addOnCompleteListener { task -> if (task. isSuccessful ){ // creating a user account moveMainPage(task. result ?. user ) } else if (task. exception ?. message . isNullOrEmpty ()){ //show the error message Toast.makeText( this, task. exception ?. message , Toast. LENGTH_LONG ).show() } else { // 비밀번호가 6 자리 미만일 때 Toast 띄우기 ! if (password_edittext. text .toString(). length < 6 ){ Toast.makeText( this, " 패스워드는 최소 6 자리 이상이여야 합니다 . 다시 입력 바랍니다 ." , Toast. LENGTH_LONG ).show() } else { // 비밀번호가 6 자리 이상일 때 , 회원가입하고 로그인하기 signinEmail() } } } }

  • 클론코딩
  • android
  • kotlin
김병관 댓글 1 좋아요 1 조회수 267

9분 30초경 onCreate 오류나면 확인하세요.

미해결

하울의 안드로이드 인스타그램 클론 만들기

override fun onCreate (savedInstanceState: Bundle?) { super .onCreate(savedInstanceState) setContentView(R.layout. activity_main ) ActivityCompat.requestPermissions( this, arrayOf (android.Manifest.permission. READ_EXTERNAL_STORAGE ) , 1 ) android.Manifest 입니다,

  • kotlin
  • android
  • 클론코딩
김병관 댓글 1 좋아요 4 조회수 528

프로필 사진 관련

미해결

하울의 안드로이드 인스타그램 클론 만들기

원래는 유저의 프로필 사진이 떠야하는 부분이 저렇게 제가 업로드한 이미지로 뜨는데 activity에서는 설정한대로 기본이미지로 뜨는데 실행하면 저렇게 뜨는데 어느부분을 수정해야할까요?

  • kotlin
  • android
  • 클론코딩
댓글 1 좋아요 0 조회수 336

로그인 후 어플 종료

미해결

하울의 안드로이드 인스타그램 클론 만들기

일반 아이디 비밀번호 입력, 페이스북 , 구글 로그인이 원래는 로그인 후 main으로 넘어가고 user에도 잘 뜨던게 어느 순간부터 저런 메시지가 뜨고 버튼만 누르면 그냥 자동으로 앱이 종료가 됩니다,, 근데 user에는 표시가 되는데 그다음이 문제인거 같아요 이메일 주소당 여러계정은 허용해놨습니다 ( 저번 질문에서 비슷한 문제를 앱크래시?라고 알려주셔서 crashlytics를 해봤는데 아무것4도 안뜨네요 ㅠㅠ)

  • kotlin
  • android
  • 클론코딩
댓글 2 좋아요 0 조회수 287

유저가 없으면 구글 로그인이 안되는 부분

미해결

하울의 안드로이드 인스타그램 클론 만들기

강의와 같이 users정보를 삭제하고 실행을 후 구글 로그인을 누르면 앱이 종료가 되고 실행 후 아이디 비번을 입력하고 signup을 누르고 하면 로그인이 됩니다,, 혹시 이게 맞는건가요?

  • android
  • kotlin
  • 클론코딩
댓글 2 좋아요 0 조회수 285

현재 홈화면에 최근에 올린 게시물이 아닌 맨 먼저 올린 게시물이 상단에 위치하는데, 최근에 올린 게시물이 상단에 노출되도록 하려면 어떻게 해야 할까요?>?

미해결

하울의 안드로이드 인스타그램 클론 만들기

현재 홈화면에 최근에 올린 게시물이 아닌 맨 먼저 올린 게시물이 상단에 위치하는데, 최근에 올린 게시물이 상단에 노출되도록 하려면 어떻게 해야 할까요?>?

  • kotlin
  • android
  • 클론코딩
본타드vontade 댓글 1 좋아요 1 조회수 216

45. RecyclerView의 Adapter에서 viewBinding 문의

미해결

윤재성의 Kotlin 기반 안드로이드 앱 개발 Part1 - UI Programming

//ViewHolder 클래스 inner class ViewHolderClass (itemView: View ) : RecyclerView .ViewHolder(itemView), View . OnClickListener { //val rowImageView = itemView.findViewById<ImageView>(R.id.rowImageView) //val rowTextView = itemView.findViewById<TextView>(R.id.rowTextView) var rowView = itemView as RowBinding val rowImageView = rowView . rowImageView val rowTextView = rowView . rowTextView override fun onClick (v: View ?) { binding . textView . text = data1 [ adapterPosition ] } } // 항목 구성을 위해 사용할 ViewHolder 객체가 필요할 때 호출되는 메소드 override fun onCreateViewHolder (parent: ViewGroup , viewType: Int ): ViewHolderClass { //val itemView = layoutInflater.inflate(R.layout.row, null) val itemView = RowBinding .inflate( layoutInflater ) val view = itemView . root val holder = ViewHolderClass( view ) view .setOnClickListener( holder ) return holder } viewBinding으로 Adapter를 변경했는데 앱이 강제 종료 됩니다. 에러 메시지 java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to com.example.recyclerview.databinding.RowBinding 소스 : https://github.com/pulmuone/RecyclerView

  • android
  • kotlin
지현명 댓글 3 좋아요 0 조회수 311

인기 태그

인프런 TOP Writers

주간 인기글