0

나는 HorizontalScrollView을 사용하는 하나의 Android 애플리케이션을 개발했으며 HorizontalScrollView은 하나의 자식을 LinearLayout으로 사용합니다.LinearLayout의 동적 추가 버튼, 버튼 클릭 이벤트 문제

이제는 런타임시 LinearLayout에 단추를 추가하고 싶습니다.

버튼을 성공적으로 추가했는데, 문제는 내 버튼 클릭 이벤트가 Android에서 작동하지 않는다는 것입니다.

ArrayList listClassItems = objCompany.getListClassItems();

 Button[] btnCategory = new Button[listClassItems.size()]; 

     for(int i=0;i<listClassItems.size();i++) 
     { 
      System.out.println("OTHER_CLASS LENGTH : " + listClassItems.size()); 
      System.out.println("CLASS ID : " + listClassItems.get(i).getClassId()); 
      System.out.println("CLASS NAME : " + listClassItems.get(i).getClassName()); 

      btnCategory[i] = new Button(myContext); 
      btnCategory[i].setId(i); 
      btnCategory[i].setTag(listClassItems.get(i).getClassId()); 
      btnCategory[i].setText(listClassItems.get(i).getClassName()); 
      btnCategory[i].setClickable(true); 


      btnCategory[i].setPadding(10,10,10,10); 

의 LayoutParams layParams = 새의 LayoutParams (LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 대신 배열의

  if(i!=0 || i!=listClassItems.size()-1) 
      { 
       layParams.leftMargin = 10; 
       layParams.rightMargin = 10; 
      } 


      tabRowBottom.addView(btnCategory,layParams); 

      btnCategory[i].setOnClickListener(null); 

      tabRowBottom.addView(btnCategory[i]); 



      btnCategory[i].setOnClickListener(new Button.OnClickListener() 
      { 
       public void onClick(View v) 
       { 
        Toast.makeText(myContext, "=== Button CLICKED ===",Toast.LENGTH_SHORT).show(); 
        btnCategory.setBackgroundColor(Color.BLACK); 
       } 
      }); 
     } 
+1

문제가 발생한 부분을 게시하십시오 .. –

+0

게시물에 향상된 형식을 기록해 두십시오. '수정'을 클릭하여 소식을 개선하는 데 사용한 마크 업을 볼 수 있습니다. 나중에 참조 할 수 있도록 서식 도움말이 [here] (http://stackoverflow.com/editing-help)에서 찾을 수 있습니다. – Matt

+0

일부 코드 블록 게시 –

답변

1

는, 버튼의 목록을 만들려면이 버튼을 생성하고 다음과 같이 자신의 ID, 태그 및 onclicklistenners을 설정하고 버튼 목록에 추가 할 수 있습니다 :

buttonList = new ArrayList<Button>(); 

    for (int i=0;i<5;i++){ 
     Button button = new Button(getApplicationContext()); 
     button.setOnClickListener(customListenner); 
     button.setId(i); 
     button.setTag(i); 
     myLayout.addView(button); 
     buttonList.add(button); 
    } 

와 때를 버튼을 다시 사용하려면 ID 또는 태그를 목록에서 호출하십시오.

다른 청취자가 필요하면 함수 인 경우 고유 태그 체크 인을 사용하여 제어하고 다른 동작을 선언 할 수 있습니다.

이 방법은 프로그래밍 방식으로 동적 뷰를 만들 때 항상 사용하는 방법입니다.