2015-01-11 1 views
0
이 같은 알파벳과 그룹을의 문자로 버튼을 만들고 싶어

을 만듭니다. 즉이 3 선이 수직 방향으로 레이아웃으로 포장되어야하며, 선이 수평 방향을 가지고해야 함을 의미합니다. (나는 아직 온라인 상태 당 5 두지 않았다 아래의 코드에서 그주의)알파벳 버튼

LinearLayout layout = (LinearLayout) findViewById(R.id.linlay); 
    for (int i = 65; i <= 90; i++) {   
     Button button = new Button(this); 
     button.setId(i); 
     button.setText(String.valueOf((char) i)); 
     button.setLayoutParams (new LayoutParams(50, LayoutParams.WRAP_CONTENT)); 
     layout.addView(button); 
    } 

linlay 여기에 세로 방향이 있으므로 내 버튼이 서로 아래에 하나씩 표시됩니다.

a 
b 
c 
d 
.. 

어떻게하면됩니까? 각 줄마다 레이아웃을 만들어야합니까?

답변

1

생각한 것처럼 중첩 선형 레이아웃을 사용할 수 있지만 GridLayout이 더 적절할 수 있습니다.

숫자 키패드 레이아웃의 선상에 몇 개의 키가있는 것을 감안하면 this tutorial 또는 기타 좋은 영감을 얻을 수 있습니까?

+0

글쎄요, 이미 .xml로 끝났습니다. 내가 원하는 것은 그것들을 동적으로 생성하는 것이다. –

+0

GridLayout을 동적으로 생성하는 것을 막을 수있는 방법은 없습니다. 한 두 가지 방법을 시도해보고 특정 문제에 얽매이지 않는지 확인해보십시오. –

+0

예. 네가 옳아. 그것을 할 수 있었다. –

0

필자는 이전에 이와 같은 작업을 수행하지 않았지만 논리적 추측으로는 코드 샘플을 사용했습니다. 그것이 작동하면 친절하게 노력하십시오.

int kStartIndex=0; 
String s="",fullString=""; 
for (int i = 65; i <= 90; i+=5) { 
    Button button = new Button(this); 
     button.setId(i); 
     kStartIndex = i; 
for(int j=0;j<5;j++) { 
     if(kStartIndex <=90) 
     {  
     s = String.valueOf((char) kStartIndex); 
fullString =fullString+s; 
     } 
    kStartIndex++; 
    } 
button.setText(fullString); 
     button.setLayoutParams (new LayoutParams(50, LayoutParams.WRAP_CONTENT)); 
     layout.addView(button); 
fullString = ""; 
}