2011-02-16 5 views
0

사용자가 입력 한 값에 따라 버튼을 생성하는 앱을 만들고 있습니다. 각 버튼에는 XML에 정의 된 자체 함수가 있습니다. 이제 내 주요 문제는 이러한 코드를 단축하는 방법입니다.Android 버튼 문제

name[0].setClickable(true); 
    name[0].setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      name[0].setText("kjghjbjhb"); 
     } 
    }); 
    name[2].setClickable(true); 
    name[2].setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      name[2].setText("kjghjbjhb"); 
     } 
    });name[1].setClickable(true); 
    name[1].setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      name[1].setText("kjghjbjhb"); 
     } 
    }); 

는 김과 .....에 또 다시 이러한 코드를 작성하여 생성 버튼을 동적으로, i가 생성되는 방법 많은 버튼 몰라 불가능하다. 이 작업을 수행 할 수있는 다른 방법이 있는지 확인하십시오.

답변

0

그럼 당신이 볼의 종료 쉽게 .. 여기

내가 실행하는 단계를 지정하고 있습니다.

  1. 새 Button()으로 버튼을 생성해야합니다. 컬렉션에서 참조를 보유하십시오. ArrayList

ArrayList ar = new ArrayList();

버튼 b1 = 새 버튼(); ar.add (b1);

  1. 이제 View.OnClickListener를 구현하는 개인 내부 클래스를 생성하십시오. 이제 규칙이의 OnClick을 (구현) 등 원하는 물건을 수행 할 당

클래스 A는 활동이 확장에로 {여기에서 OnCreate 및 기타 비즈니스 로직

개인 결승전 // 물건 클래스위한 MyListener는 {

public void onClick(View v) { 
     // TODO Auto-generated method stub 
     v.setText("kjghjbjhb"); 
    } 

}

}

,536,913 View.OnClickListener를 구현

onClick에서 객체 v에 대한 참조로 텍스트를 설정한다는 것에 유의하십시오. 또한이 클래스를 싱글 톤으로 만듭니다.

  1. 지금) (이

에 myListener 리스너 같은) setOnClickListener (에합니다 (MyListerner가되는 바와 같이 단일 개체가 하나가 될 것이다) = MyListener.getInstance를,이 클래스의 인스턴스를 생성 설정; b.setOnClickListener (listener);

이벤트 또는 사용자 작업에 따라 단추를 만들면이 방법을 사용할 수 있습니다. 루프의 버튼을 생성해야하는 경우 루프의 첫 번째와 세 번째 단계를 사용할 수 있습니다.

이 정보가 도움이되기를 바랍니다.

3

이와 비슷한? 이 방법

createButton(int i){ 
     name[i].setClickable(true); 
     name[i].setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       name[i].setText("kjghjbjhb"); 
      } 
     }); 
    } 

당신도 만들 수에 대한 루프 :

for (int i = 0; i<name.length; i++){ 
     createButton(i); 
    }