좋아, 이상한 일이 저에게 일어나고 있습니다. 나는 가져오고 작동중인 onTouchListener를 설정 한 다른 레이아웃의 tab_btn이라는 ImageButton을 가지고 있습니다.Android ImageButton OnTouchListener가 작동하지 않습니다.
는패키지 com.xx
수입 kotlinx.android.synthetic.main.tab_btn_layout. *
수입 kotlinx.android.synthetic.main.btnNext_layout. *
class EventDetails : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_event_details)
tab_btn.setOnTouchListener(object : View.OnTouchListener {
override fun onTouch(view: View?, event: MotionEvent?): Boolean {
if (event!!.action == MotionEvent.ACTION_DOWN) {
val icon: Drawable = ContextCompat.getDrawable(applicationContext, R.drawable.talk_bt_tab)
icon.setColorFilter(Color.GRAY,PorterDuff.Mode.MULTIPLY)
tab_btn.setImageDrawable(icon)
}else if (event!!.action == MotionEvent.ACTION_UP) {
tab_btn.clearColorFilter()
}
return true
}
})
btnNext.setOnTouchListener(object : View.OnTouchListener {
override fun onTouch(p0: View?, ev: MotionEvent?): Boolean {
if (ev!!.action == MotionEvent.ACTION_DOWN){
val icon: Drawable = ContextCompat.getDrawable(applicationContext, R.drawable.layer_bt_next)
icon.setColorFilter(Color.GRAY,PorterDuff.Mode.MULTIPLY)
btnNext.setImageDrawable(icon)
}else if(ev!!.action == MotionEvent.ACTION_UP){
btnNext.clearColorFilter()
}
return true
}
})
}
}
그 아래에 나는 btnNext라는 다른 레이아웃의 다른 ImageButton을 가지고 있습니다. 같은 OnTouchListener를 설정했습니다. 그러나 그것은 나에게 오류를 준다.
그리고 btnNext 나에게 오류 제공 : 널 객체 참조에
메모를 가상 메서드를 호출하는
시도 '무효 android.widget.ImageButton.setOnTouchListener (android.view.View에서 $ OnTouchListener를)': I 이미지 버튼의 레이아웃을 모두 가져 왔습니다. tab_btn이 작동하지만 btnNext가 작동하지 않습니다.
당신이 btnNext 버튼을 초기화 한? –
@OmInfowaveDevelopers 예. 시도해 보았습니다. 하지만 kotlin에서는 초기화 할 필요가 없습니다. 나는 kotlinx 합성물의 사용으로 그것의 레이아웃을 수입했다. btw tab_btn은 가져온 상태로 초기화되지 않았지만 작동 중입니다. – lambda
전체 코드를 게시하십시오 – RRTW