2013-07-05 4 views
0

나는 프로그램 방식으로보기 (회 전자, editbox 및 datepicker)를 만들고 있습니다 (이전과 정확한 숫자 및 유형을 모르는 경우). 제출 버튼을 클릭하면보기의 모든 값을 검색해야합니다. 또한 어떤 값이 어떤보기인지 알 수 있습니다.동적으로 생성 된 뷰의 값을 검색하는 방법은 무엇입니까?

결국 이러한 모든 값을 다른 활동으로 전달해야합니다.

이 기능을 어떻게 수행 할 수 있습니까?

+0

코드를 표시 할 수 있습니까? – Raptor

답변

0

당신은의 View을 이와 같은 종류의 구성원으로 가질 수 있습니다.

View이 생성되면이 목록에 각보기를 추가하십시오. 그런 다음 쉽게 반복하여 값을 얻을 수 있습니다. (그것을 할 수있는 완벽하게 좋은 방법이다 R9j에 의해 제안) 당신이 그것을 사용하여 활동의 루트보기를 얻을 수도 있습니다 행해져 Yout 경관을 감상 할 수있는 목록을 원하지 않는 경우

+0

그래서, 여기 내 viewList에는 모든 유형의 뷰가 포함됩니다. 그러면 어떻게 가치를 얻을 수 있을까요? 내 말은 회 전자에는 getSelectedItem()이 있고, editText에는 getText()가 있습니다. 보기가 무엇인지 모른 채 이러한 값을 찾는 방법은 무엇입니까? – Newbie

+0

당신은'instanceOf' 연산자를 사용하여 어떤 종류의 뷰가 – R9J

0

클릭 핸들러는 클릭 한 뷰에 대한 참조를 전달합니다. 그 값을 얻기 위해 전화하십시오.

정말로 모든 작업을 수행하고 모든 값을 확인해야하는 경우 데이터 구조 (해시, 목록 등)에 모두 저장해야합니다. 해당 데이터 구조의 일부분을 추적해야합니다. 그러나 실제로 액세스해야하는시기와 이유, 그리고 그 용도에 대해 알지 못하면 더 자세한 솔루션을 제안 할 수 없습니다.

0

View rootLayout= ((ViewGroup)findViewById(android.R.id.content)).getChildAt(0) 
당신은 내가 텍스트 뷰를 검사하지만, 다른 유형의 ID를 제공함으로써 가능 aswell 것이 경우 아이보기 목록

for(int i=0; i<rootLayout.getChildCount(); i++) 
    { 
     View child = rootLayout.getChildAt(i); 
     if(child instanceof TextView) 
     { 
      int id= child.getId(); 
      if(id>500) //whatever check makes sense to you given the way you use ids 
      { 
       String content = ((TextView) child).getEditableText().toString(); 
      } 
     } 
    } 

을 통과 할 수 있도록 추가이보기에서

모든보기가 될 것입니다 뷰를 생성 할 때 어떤 뷰가 무엇을 가져야하는지 알 수 있습니다. 정보. You may also use tags for that.

이름을 무시하면보기 ID가 고유하지 않아도됩니다.

관련 문제