2012-11-15 1 views
0

많은 문제없이 동적 폼을 만들었지 만 폼의 필드 (컨트롤)에서 값을 복구해야하지만이 작업을 수행하는 방법은 확실하지 않습니다.안드로이드에서 동적 폼 값 가져 오기

if(tipoP.equals("TEXTAREA")){ 
    EditText ta = new EditText(this); 
    ta.setId(i); 
    LayoutParams params3 = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, (float) 0.3); 
    params3.setMargins(20, 0, 20, 0); 
    ta.setLayoutParams(params3); 
    ta.setLines(3); 
    ta.setRawInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE); 
    ll.addView(ta); 
} 

가 어떻게이 글고의 텍스트를 캡처하는 리스너를 추가하고 벡터 변수 안에 넣어 않습니다 : 예를 들어

, 나는이 코드 조각이?

나는이 시도 :

ta.setOnClickListener(new OnClickListener(){ 
    public void onClick(View view){ 
     EditText t = (EditText) findViewById(i); 
     res.add(t.getText().toString); 
    } 
}); 

을하지만 다른 실행 환경에서 ID (i 변수)는이 때문에을받지 못했습니다. 어떻게 해결할 수 있습니까? 어떤 도움을 주시면 감사하겠습니다 !!

+0

사용자가 EditText를 클릭 할 때 텍스트를 캡처하려는 이유가 무엇입니까? 그 버튼이있는 것이 더 합리적이지 않습니까? – katzoft

+0

정확히! 하지만이 EditText는 동적으로 생성됩니다 ... 사용자가 버튼을 클릭하면이 EditText 및 다른 UI 구성 요소의 값을 가져와야합니다 ... onClick이 올바른 이벤트가 아닌 경우 사용합니까? –

답변

1

동적으로 생성 된보기에는 setTagfindViewByTag이 아니라 setId를 사용하지 않아야합니다.

+0

하지만 setId를 사용한다는 것은 CheckBoxes, RadioButtons 등과 같은 여러 EditText 및 다른 UI 구성 요소를 생성한다는 것입니다. 양식에 대해 이야기하고 있습니다 ... 사용자가 저장 버튼을 클릭하면 , 모든 UI 구성 요소의 값을 문자열로 가져 와서 문자열 벡터 안에 넣어야합니다. –

+0

기본적으로 기능적인 측면에서 볼 때 ID와 태그 사이에는 차이가 없습니다. 그들을 사용해 보셨습니까? – Snicolas

0

버튼을 동적으로 만들고 onClickListener를 설정할 수 있습니다. 청취자 내부에서는 최종적으로 EditText를 직접 참조 할 수 있습니다 (태그 또는 ID는 필요하지 않습니다).