2015-02-04 3 views
0

동적으로 이런 코드 tablerows 체크 박스를 만듭니다의 생성 후작업은

for (Iterator i = users.iterator(); i.hasNext();) { 
     Users p = (Users) i.next(); 

     /** Create a TableRow dynamically **/ 
     tr = new TableRow(this); 
     /** Creating a Checkbox to add to the row **/ 
     CheckBox cb = new CheckBox(this); 
     cb.setText(p.getEan()); 
     LinearLayout Ll1 = new LinearLayout(this); 
     Ll1.addView(cb); 
     System.out.println(j); 
     tr.addView((View)Ll1); // Adding CheckBox to tablerow. 

     /** Creating a TextView to add to the row **/ 
     label = new TextView(this); 
     label.setText(p.getName()); 
     label.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, 
       LayoutParams.WRAP_CONTENT)); 
     label.setPadding(5, 5, 5, 5); 
     label.setBackgroundColor(Color.GRAY); 
     LinearLayout Ll = new LinearLayout(this); 
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, 
       LayoutParams.WRAP_CONTENT); 
     params.setMargins(5, 2, 2, 2); 
     Ll.addView(label,params); 
     tr.addView((View)Ll); // Adding textView to tablerow. 

     // Add the TableRow to the TableLayout 
     tl.addView(tr, new TableLayout.LayoutParams(
       LayoutParams.FILL_PARENT, 
       LayoutParams.WRAP_CONTENT)); 
    } 

사용자를 확인하거나 취소 할 수 있습니다. 수표로 모든 체크 박스에 대해 다른 명령을 실행해야합니다.

내 문제는 어떻게 확인란을 사용합니까? 내가 어떻게 "말할"수있어서 그것으로 작업 할 수 있습니까?

+0

'모든 체크 박스마다 다른 명령을 실행'하고 싶을 때 ?? –

+0

@hevilp onCheckedChangeListener 메소드에 소스를 게시하십시오. – iRuth

+0

다른 명령은 확인란의 텍스트를 기반으로해야합니까? – Salmaan

답변

0

generateViewId() (또는 setId(i)으로 남겨주세요)을 호출하고 프로그래밍 방식으로 생성 된 체크 박스에 setId()에 생성 된 ID를 사용하십시오. 귀하의 활동 기간 동안 ID를 로컬에 저장하고 setOnCheckedChangeListener에서 R의 정적 ID와 동일한 방식으로이 ID를 사용하십시오.

+0

이것은 생성 된 모든 ID를 반복하여 검사하는 메소드 인 것 같습니다. 코드 예제 pls를 줄 수 있습니까? – hevilp

0

행과 확인란에 동일한 ID를 부여했습니다. id 행을주지 마라. 또는 다른 것들.

다음과 같은 코드를 체크 변경 리스너에 추가 할 수 있습니다.

LinearLayout my_layout = (LinearLayout)findViewById(R.id.my_layout); 

for (int i = 0; i < Array_Count; i++) 
{ 
CheckBox checkBox = (CheckBox)my_layout.findViewById(i); 

if (checkBox == null) 
    continue; 

Toast.makeText(context, checkBox.getText(), Toast.LENGTH_SHORT).show(); 

checkBox.setText("my id is: " + i); 
} 
+0

감사합니다. 그러나 : array_count는 무엇입니까? ArrayList "Users"에 속합니다. 코드가 지금은 쓸모가 없다. – hevilp

+0

Array_Count에 대한 for 루프는 게시 된 코드에서 나온 것입니다. 분명히 해당 코드를 삭제했습니다. 당신이 생각을하면 당신은 그 코드를 사용할 수 있습니다. – greenapps

+0

왜 레이아웃을 설정해야합니까? 심지어 라인 LinearLayout my_layout = (LinearLayout) findViewById (R.id.activity_einbuchen); doesnt work – hevilp