• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

dataModel 에서 값을 갖고 오지 못합니다

23.03.13 22:01 작성 23.03.13 22:06 수정 조회수 762

0

수정 버튼을 누르고 이후에 수정하는 페이지가 나올때 binding을 통해 dataModel 값들을 불러오지 못하고 오류가 납니다

 

class BoardEditActivity : AppCompatActivity() {

    private lateinit var key:String

    private lateinit var binding : ActivityBoardEditBinding

    private val TAG = BoardEditActivity::class.java.simpleName

    override fun onCreate(savedInstanceState: Bundle?) {

        super.onCreate(savedInstanceState)


        binding = DataBindingUtil.setContentView(this, R.layout.activity_board_edit)

        key = intent.getStringExtra("key").toString()
        getBoardData(key)
    }

    private fun getBoardData(key : String){

        val postListener = object : ValueEventListener {
            override fun onDataChange(dataSnapshot: DataSnapshot) {

                val dataModel = dataSnapshot.getValue(BoardModel::class.java)
                Log.d(TAG, dataModel.toString())
//                Log.d(TAG, dataModel!!.title)
//                Log.d(TAG, dataModel!!.time)

                binding.titleArea.setText(dataModel?.title)
                binding.contentArea.setText(dataModel?.content)


            }

            override fun onCancelled(databaseError: DatabaseError) {
                // Getting Post failed, log a message
                Log.w(TAG, "loadPost:onCancelled", databaseError.toException())
            }
        }

        FBRef.boardRef.child(key).addValueEventListener(postListener)


    }
}

이게 현재 코드입니다

여기서 저번 강의때 try catch 구문 쓰셨던 것과 같은 문제가 발생합니다

그래서 try catch 를 쓰면 오류가 나와 페이지로만 이동하게 되어 아무것도 표시되지 않습니다

 

안드로이드 스튜디오 버전은 Electric Eel 입니다

답변 1

답변을 작성해보세요.

0

혹시 에러로그가 어떻게 나오나요?

Log.w(TAG, "loadPost:onCancelled", databaseError.toException())

이 부분에서 어떻게 출력되나요?

fgvcxg님의 프로필

fgvcxg

질문자

2023.03.13

2023-03-13 22:21:02.334 InputManager-JNI system_server W Input channel object 'de456b3 com.example.test/com.example.test.board.BoardEditActivity (client)' was disposed without first being removed with the input manager!

 

BoardEditActivity로 오류를 찍었을 때 다른 경고 로그는 안나오고 위에 로그만 남아있습니다

 

안드로이드 스튜디오 로그가 안나오는 것 같은데

안드로이드 스튜디오 재시작 / 에뮬레이터 재시작을 하셔서 어떻게 나오는지

스크린샷과 에러메세지를 공유해주시면 살펴볼게요~

fgvcxg님의 프로필

fgvcxg

질문자

2023.03.16

저는 s22울트라로 연결해서 시험중에 있습니다

먼저 로그를 찍으려고 했을때

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.test, PID: 31888
    java.lang.NullPointerException
        at com.example.thebullcamp.board.BoardEditActivity$getBoardData$postListener$1.onDataChange(BoardEditActivity.kt:44)
        at com.google.firebase.database.core.ValueEventRegistration.fireEvent(ValueEventRegistration.java:75)
        at com.google.firebase.database.core.view.DataEvent.fire(DataEvent.java:63)
        at com.google.firebase.database.core.view.EventRaiser$1.run(EventRaiser.java:55)
        at android.os.Handler.handleCallback(Handler.java:942)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loopOnce(Looper.java:226)
        at android.os.Looper.loop(Looper.java:313)
        at android.app.ActivityThread.main(ActivityThread.java:8757)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)

이런식으로 오류가 나옵니다

수정페이지가 나타나자마자 꺼집니다

오류 코드 에서 나오는 44번째에 있는 건

Log.d(TAG, dataModel!!.title)

입니다

fgvcxg님의 프로필

fgvcxg

질문자

2023.03.16

또 이러한 종류의 애러도 있습니다

Exception thrown during dispatchAppVisibility Window{f36eca4 u0 com.example.test/com.example.test.board.BoardEditActivity EXITING}
                                                                                         android.os.DeadObjectException
                                                                                         	at android.os.BinderProxy.transactNative(Native Method)
                                                                                         	at android.os.BinderProxy.transact(BinderProxy.java:662)
                                                                                         	at android.view.IWindow$Stub$Proxy.dispatchAppVisibility(IWindow.java:658)
                                                                                         	at com.android.server.wm.WindowState.sendAppVisibilityToClients(WindowState.java:4197)
                                                                                         	at com.android.server.wm.WindowContainer.sendAppVisibilityToClients(WindowContainer.java:1246)
                                                                                         	at com.android.server.wm.WindowToken.setClientVisible(WindowToken.java:431)
                                                                                         	at com.android.server.wm.ActivityRecord.setClientVisible(ActivityRecord.java:7682)
                                                                                         	at com.android.server.wm.ActivityRecord.onAnimationFinished(ActivityRecord.java:8552)
                                                                                         	at com.android.server.wm.WindowContainer$$ExternalSyntheticLambda4.onAnimationFinished(Unknown Source:2)
                                                                                         	at com.android.server.wm.SurfaceAnimator.lambda$getFinishedCallback$0(SurfaceAnimator.java:140)
                                                                                         	at com.android.server.wm.SurfaceAnimator.$r8$lambda$lRxTVOJy8fX752UbrFno9INW9hE(Unknown Source:0)
                                                                                         	at com.android.server.wm.SurfaceAnimator$$ExternalSyntheticLambda1.run(Unknown Source:8)
                                                                                         	at com.android.server.wm.SurfaceAnimator.lambda$getFinishedCallback$1(SurfaceAnimator.java:150)
                                                                                         	at com.android.server.wm.SurfaceAnimator.$r8$lambda$4PiCdaEsT4mA6LQVhqpeM5EoU9c(Unknown Source:0)
                                                                                         	at com.android.server.wm.SurfaceAnimator$$ExternalSyntheticLambda0.onAnimationFinished(Unknown Source:4)
                                                                                         	at com.android.server.wm.LocalAnimationAdapter.lambda$startAnimation$0(LocalAnimationAdapter.java:67)
                                                                                         	at com.android.server.wm.LocalAnimationAdapter.$r8$lambda$gPDCFw0mQLltlXqA3mL6IUKCwLs(Unknown Source:0)
                                                                                         	at com.android.server.wm.LocalAnimationAdapter$$ExternalSyntheticLambda0.run(Unknown Source:6)
                                                                                         	at android.os.Handler.handleCallback(Handler.java:942)
                                                                                         	at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                         	at android.os.Looper.loopOnce(Looper.java:226)
                                                                                         	at android.os.Looper.loop(Looper.java:313)
                                                                                         	at android.os.HandlerThread.run(HandlerThread.java:67)
                                                                                         	at com.android.server.ServiceThread.run(ServiceThread.java:44)
fgvcxg님의 프로필

fgvcxg

질문자

2023.03.16

고쳤습니다
코드 순서 문제였습니다

적다보니 순서가 꼬여서 액티비티가 나온다음 키값을 넣어줘서 못갖고 온것이였습니다

감사합니다