2014-09-10 4 views
0

안녕하세요 저는 테이블 레이아웃에서 일부 버튼을 생성하는 코드를 사용했습니다. 버튼은이 레이아웃에 의해 생성되므로 아무 것도 아직 ID가 없습니다. 그래서 여기 내 질문입니다. 특정 버튼에 ID를 부여하려면 어떻게해야합니까? 당신은 View.setId()을 사용할 수 있습니다동적 생성 된 버튼에 ID를 부여하는 방법은 무엇입니까?

public class MainActivity extends ActionBarActivity { 

private static final int NUM_ROWS = 3; 
private static final int NUM_COLS = 3; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    populateButtons(); 
} 


private void populateButtons() { 
    TableLayout table = (TableLayout) findViewById(R.id.TableLayout); 

    for (int row =0; row < NUM_ROWS; row++) { 
     TableRow tableRow = new TableRow(this); 
     tableRow.setLayoutParams(new TableLayout.LayoutParams(
       TableLayout.LayoutParams.MATCH_PARENT, 
       TableLayout.LayoutParams.MATCH_PARENT, 
       1.0f)); 
     table.addView(tableRow); 
     for (int col = 0; col < NUM_COLS; col++) { 
      Button button = new Button(this); 
      tableRow.addView(button); 
    } 
    } 
} 
+0

[setId()] (http://developer.android.com/reference/android/view/View.html#setId (int)) 그러나'String'을 원하면'int'를 취합니다. 당신은'setTag() '(http://developer.android.com/reference/android/view/View.html#setTag (java.lang.Object))를 사용하여'Object'를 가져 와서'getTag()' – codeMagic

+0

이것 좀 봐 : http://stackoverflow.com/questions/1714297/android-view-setidint-id-programmatically-how-to-avoid-id-conflicts/14975498#14975498 – Loc

답변

0

(예를 들어 첫 번째 행에있는 버튼을, 두 번째 콜 럼이 "단추 2를"ID를 가져야한다),하지만 난 당신이 이미 알고 있기 때문에 ID로 뷰를 찾을 필요가 없습니다 추측 그들.

+0

@DudeEffects, 그는 뷰를 만든 경우 View 변수로 조작하고 저장할 수 있다는 의미입니다. ID가 필요하지 않습니다. – LcSalazar