2011-12-20 2 views
2

TableLayout을 사용하여 제품 카테고리를 추출했습니다.TableLayout onClickListener : 행/열 가져 오기

데이터를 가져 와서 동적으로 렌더링합니다. TableRow와 ImageView를 모두 추가하려고합니다.

TableRow 당 3 개의 항목이있는 경우 onClickListener을 어떻게 처리합니까?

내가 사용 된 레이아웃을 변경할 수 없습니다, 그래서 현재의 상황에서 해결책을 찾고 있어요

+0

어떻게이 테이블에 데이터를로드합니까? 왜 사용 된 레이아웃을 변경할 수 없습니까? 행의 항목에 'duplicateParentState'를 true로 설정하고 행에 onClickListener를 설정하십시오. – Jordi

+0

@ Jordi 프로그래밍 방식으로로드합니다. 조직적인 이유로 레이아웃을 변경할 수 없습니다. 너는 마지막 문장이 내게 의미가 없다. 대답으로 대답 해 줄 수 있니? 감사합니다 –

+0

@MarekSebera : tablerow 또는 tablerow 자체의 요소 클릭 수를 감지하고 싶습니까? –

답변

5

for 루프 이렇게 : 테이블 행의 각각의 하위 요소

  1. 사용 setTag() 또는 setTag(key, tag)를 루프 자체에 대한 [참고 내의 아이 소자 가변 증분

  2. setonclick 수신기를 사용 : 내의 onclicklisteners의 onclick(View v) 루프]

  3. 를 들어, 당신은에 태그를 변환 [v.getTag()를 사용하여 클릭 뷰를 검색하여 각각의 클릭을 감지 할 수 있습니다 필요한 데이터 형식]

+0

감사합니다. –

+0

@MarekSebera : 대환영! –

0

귀하의 팽창 레이아웃 XML에서 다음과 같이 보일해야합니다 : 자바

<TableRow android:id="@+id/somerow"> 
    <TextView android:id="@+id/row_item1" android:duplicateParentState="true" .... /> 
    <TextView android:id="@+id/row1_item2" android:duplicateParentState="true" .... /> 
    <TextView android:id="@+id/row1_item3" android:duplicateParentState="true" .... /> 
</TableRow> 

그래서 코드를 사용하는 경우 행을 부 풀린 다음 바로 이와 같이해야합니다.

// there is some var tableRow of type TableRow 
TextView myTextView = new TextView(......); 
myTextView.setOnClickListener(myOnClickListener); // this is the important part 
myTableRow.addView(myTextView); 
+0

내의 항목에 @android_hungry가 있는데이'duplicateParentState' 속성으로'row1_item1/2/3'을 어떻게 처리 할 수 ​​있습니까? –

+0

나는 네 질문에 잘못이 있다고 생각한다. 3 항목 모두에서 1 개의 clickListener를 관리하는 방법을 묻는 것 같았습니다. 별도로 clickListener를 갖고 자한다면 : tableRow.findViewById (R.id.row_item1) .setOnClickListener (myOnClickListener1); 또는 TextView를 동적으로 만들면 onClickListener – Jordi

+0

을 직접 추가하여 익명의 onclicklistener를 클릭하여 처리 할 수있는 각보기에 추가 할 것을 제안 하시겠습니까? –