2012-07-04 3 views
1

TableLayout을 사용하여 데이터 격자를 표시하고 프로그래밍 방식으로 Tablerows를 루프 내에 추가하는 바인딩 컨트롤 인 Object의 배열에 따라 바인딩을 선택하고 메소드가 사용하기 위해 특정 데이터를 갖는 특정 행. 그렇다면 메소드를 위임하기 위해 데이터를 검색하는 특정 행을 어떻게 선택할 수 있습니까? 당신이 뭔가를 시도 할 수 있습니다TableLayout 내에서 특정 TableRow를 클릭하는 방법

+0

같은 문제가 있지만 어떤 열을 눌렀는지 알고 싶기 때문에 TableRow에서 onItemClickListener를 사용하려고합니다. TableRow를 onItemClick을 지원하는 무언가로 변환하는 방법을 찾을 수 없습니다. 어떤 해결책이 있습니까? –

답변

7

안녕하세요, 추가 정보를 위해

// create a new TableRow 

    TableRow row = new TableRow(this); 
    row.setClickable(true); //allows you to select a specific row 

    row.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 
      v.setBackgroundColor(Color.GRAY); 
      System.out.println("Row clicked: " + v.getId()); 

      //get the data you need 
      TableRow tablerow = (TableRow)v.getParent(); 
      TextView sample = (TextView) tablerow.getChildAt(2); 
      String result=sample.getText().toString(); 
     } 
    }); 

나는 Parth 트레이 도시의 답변을 시도하고 아주 정확하지 것으로 확인

5

Android TableRow 참조하십시오. onClickview 매개 변수는 TableRow이므로 v.getParent()이 호출되면 TableLayout 개체를 반환하므로 TableRow으로 캐스팅 할 때 예외가 throw됩니다. 그와 같은 나를 위해 작동하는 코드는 다음과 같습니다.

+0

감사합니다! 확실히 답변으로 표시된 것보다 효과적입니다. – driftwood

관련 문제