2012-01-02 4 views
0

안녕하세요 클릭 할 때마다 테이블 행에 새 버튼을 추가 할 버튼을 클릭하고 싶습니다. 3 개의 단추가 행에 추가 된 후에는 동적으로 새 테이블 행을 만들고 새 단추를 추가하려고합니다.TableRow에 동적으로 버튼 추가

단추를 클릭하면 테이블에 행을 추가하는 방법을 알고 있습니다. 클릭 할 때마다 테이블 행을 수정하는 방법을 모르므로 추가 버튼을 추가 할 수 있습니다.

조언이 있으면 도움이되고 감사하겠습니다. 다음

내 코드하지만이 사전에

public class DynamicTableView extends Activity { 

    TableLayout mTlayout; 
    String[] mTextofButton = { "Dipak", "E", "I", "J", "L", 
      "M", "G", "R", "N", "T", "H", "P", 
      "K", "Y", "V" }; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     mTlayout = (TableLayout) findViewById(R.id.mTlayout); 


     TableRow tr=new TableRow(this); 
     for(int i=0;i<mTextofButton.length;i++){ 
      Button btn=new Button(this); 
      btn.setText(mTextofButton[i]); 
      tr.addView(btn); 

     } 
     mTlayout.addView(tr); 
    } 
} 

감사 완벽하지 않습니다.

+0

문제는 무엇입니까? 코드가 작동해야하는 것 같습니다. –

+0

내 코드는 작동하지만 버튼이 동적으로 추가되고 위의 내 문제 설명을 참조하십시오. 하나의 행에 버튼 3 개만 추가 한 후 다음 tablerow를 작성하는 방법. –

+0

당신이 ** 간단한 ** codeflow 문제가있는 것 같습니다 ... – Selvin

답변

10

사용을 사용하는 것입니다 : -

public class DynamicButtonsActivity extends Activity { 

    TableLayout mTlayout; 
    TableRow tr; 
    String[] mTextofButton = { "D", "E", "I", "J", "L", "M", "G", "R", "N", 
      "T", "H", "P", "K", "Y", "V" }; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     mTlayout = (TableLayout) findViewById(R.id.mTlayout); 

     int i = 0; 
     while (i < mTextofButton.length) { 
      if (i % 3 == 0) { 
       tr = new TableRow(this); 
       mTlayout.addView(tr); 
      } 
      Button btn = new Button(this); 
      btn.setText(mTextofButton[i]); 
      btn.setId(i); 
      btn.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 
        System.out.println("v.getid is:- " + v.getId()); 
       } 
      }); 
      tr.addView(btn); 
      i++; 
     } 
    } 
} 
1

ButtononClick()가 자신의 addNewButton() 말과 같은 것을 할 것 :

public void addNewButton(View b) 
{ 
     for(int i=0; i<mTextofButton.length; i+=3){ 
       TableRow tr=new TableRow(this); 

       Button btnOne=new Button(this); 
       btnOne.setText(mTextofButton[i]); 
       tr.addView(btnOne); 

       Button btnTwo =new Button(this); 
       btnTwo.setText(mTextofButton[i+1]); 
       tr.addView(btnTwo); 

       Button btnThree =new Button(this); 
       btnThree.setText(mTextofButton[i+2]); 
       tr.addView(btnThree); 
       mTlayout.addView(tr); 
     } 
} 

을하지만 mTextofButton.length에 대해주의, 그것은 3, 그렇지 않으면 당신은 ArrayIndexOutOfBondException을 받고 곧 의해 divisable해야 의미합니다. 더 나은 방법은 코드 다음 ArrayList<String>

+0

한 행에 3 개의 버튼을 추가하고 다음 테이블 행을 만들지 만 내 질문은 "어떻게해야합니까?" –

+0

내 수정 된 답변보기 .. !! –

+0

코드가 작동하지만 동적 버튼에 대한 수신기를 만드는 방법. –

4
int i=0; 
    while(i<mTextofButton.length){ 
      if(i%3==0){ 
       TableRow tr=new TableRow(this); 
       mTlayout.addView(tr); 
      } 
      Button btn=new Button(this); 
      btn.setText(mTextofButton[i]); 
      tr.addView(btn); 
      i++; 
    } 
관련 문제