마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 스튜디오 코틀린 다른 클래스 접근

0 추천

쉬운 문제인거 같은데 잘 해결되지 않아서 질문을 드립니다 ㅠㅠ

 

현재 메인액티비티안에 다른 액티비티로 넘어가는 함수를 구현해논 상태입니다

fun Test(s : String){
    Toast.makeText(this, "Button Clicked", Toast.LENGTH_SHORT).show()

    TestActivity.info = s

    var t1 : Intent = Intent(this, TestActivity::class.java)
    startActivity(t1)
}

 

그리고 baseadapter를 상속받는 코틀린 클래스 안에서

메인액티비티의 저 Test 함수를 부를려고 하는데 자꾸 에러가 뜨네요 ㅠㅠ 부르는 쪾 함수입니다

 

getView() 함수안에

 

val main = MainActivity()

score.setOnClickListener {
    main.Test(alcohol.name)
}

 

이렇게 해놓고 있는데 버튼을 누르면 

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.chanmob.myapplication, PID: 5000
    java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference

 

이게 뜨면서 앱 중지가 됩니다 ㅠㅠ 어떻게 해야할까요

 

찬몹 (120 포인트) 님이 2019년 2월 11일 질문

1개의 답변

0 추천
코틀린을 잘 모르지만 자바로 예를 들자면 Test함수의 Intent의 파라미터값으로 들어가는 context인 this는 메인엑티비티인데 어댑터에서 호출시 context가 null이기 때문에 발생한 오류인듯해요. baseadapter를 상속받은 클래스의 생성자 부분에서 context를 액티비티로 부터 받아서 그것을 사용하시면 될것같아요.
익명사용자 님이 2019년 2월 12일 답변
...