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

동적 버튼생성후 클릭 이벤트 처리시 질문

0 추천

버튼을 동적 생성하고 ID값을 줬는데 ID값을 못받아오는데 어디가 잘못된건가요??

setid로 설정하는거 아닌가요??

getId에서 on a null object reference 됩니다 ㅜ

Attempt to invoke virtual method 'int android.widget.Button.getId()' on a null object reference

                btnArr[i] = new Button(this); //버튼 선언
                btnArr[i].setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 200));  //가로세로 폭
                btnArr[i].setBackgroundResource(R.drawable.white);  //이미지

                btnArr[i].setId(i);  //버튼 아이디값 차례로 입혀줌

                btnArr[i].setOnClickListener(this); 

                list.addView(btnArr[i]);  </span>
  public void onClick(View v){
     
        for(i = 0; i < btnArr.length; i++){
            if(v.getId() == btnArr[i].getId()){ 
         
            }
        }

    }

 

익명사용자 님이 2019년 4월 8일 질문

1개의 답변

0 추천
View v = list.getChildAt(i) ;

Button btn = (Button) v;

v.getId() 로 해보세요
aucd29 (218,390 포인트) 님이 2019년 4월 8일 답변
좀만 자세히 설명좀 부탁드릴게요 ㅠ
linear (list) 에 넣은 버튼들을 getChildAt 으로 위치를 지정해서 버튼을 얻는것 입니다.
https://developer.android.com/reference/android/view/ViewGroup.html#getChildAt(int)
감사합니다 ^^ 잘 해결 됐습니다 ~
...