-
카테고리
-
세부 분야
모바일 앱 개발
-
해결 여부
해결됨
이미지업로드관련 질문
22.11.08 12:13 작성 조회수 183
0
writeActivity에서 storage로 키값이 전송이 된것은 확인이 되었는데 insideActivity에서 storage에 있는 key값이 안들어옵니다. 자세하게는 mountain.jpg랑 key를 직접 복붙한것은 되는데 key+".png"가 안됩니다. 그리고 toast로 실험해봤을 때
'key = intent.getStringExtra("key").toString()' 가 null이라고 출력이됩니다.아래는 insideActivity입니다.
package com.example.knunity.board
import android.os.Bundle
import android.util.Log
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.isVisible
import com.bumptech.glide.Glide
import com.example.knunity.databinding.ActivityBoardInsideBinding
import com.google.android.gms.tasks.OnCompleteListener
import com.google.firebase.ktx.Firebase
import com.google.firebase.storage.FirebaseStorage
import com.google.firebase.storage.ktx.storage
class BoardInsideActivity : AppCompatActivity() {
private lateinit var key: String
private val binding: ActivityBoardInsideBinding by lazy {
ActivityBoardInsideBinding.inflate(layoutInflater)
}
lateinit var datas: BoardModel
private val Tag = BoardInsideActivity::class.java.simpleName
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(binding.root)
// val title = intent.getStringArrayExtra("title").toString()
//val contents = intent.getStringArrayExtra("contents").toString()
//val time = intent.getStringArrayExtra("time").toString()
//val uid = intent.getStringArrayExtra("uid").toString()
datas = intent.getSerializableExtra("data") as BoardModel
binding.titlePage.text = datas.title
binding.contentPage.text = datas.contents
binding.timePage.text = datas.time
key = intent.getStringExtra("key").toString()
Log.d("test", key)
getImagefromFB(key)
// Log.d(Tag, title)
// Log.d(Tag, contents)
// Log.d(Tag, time)
}
private fun getImagefromFB(key: String) {
val storageReference = Firebase.storage.reference.child(key+".png")
val imageViewFromFB = binding.imagePage
storageReference.downloadUrl.addOnCompleteListener(OnCompleteListener { task ->
if (task.isSuccessful) {
Glide.with(this)
.load(task.result)
.into(imageViewFromFB)
} else {
imageViewFromFB.isVisible = false
Toast.makeText(this,key,Toast.LENGTH_SHORT).show()
}
})
}
// 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 imageViewFB = binding.imagePage
//
//
//
// storageReference.downloadUrl.addOnCompleteListener(OnCompleteListener { task ->
// if (task.isSuccessful) {
// Glide.with(this)
// .load(task.result)
// .into(imageViewFB)
// } else {
// Toast.makeText(this, "FAIL TO LOAD", Toast.LENGTH_SHORT).show()
// }
// })
//
// }
}
답변을 작성해보세요.
0
mvp_imp
질문자2022.11.14
간단하게 말씀드리면
key = intent.getStringExtra("key").toString()
이게 null로 찍혀서 스토리지에 있는 이미지 key값을 못불러오고 있는게 문제입니다.
개복치개발자
지식공유자2022.11.16
질문주신 것을 보면 당연히 아시겠지만
intent에서 값을 받아오면 BoardInsideActivity 에서 값을 넘기고 있을텐데 넘기는 쪽에 값이 제대로 들어갔는지 확인해보시겠어요?
답변 1