2014-10-31 3 views
-2

내 응용 프로그램에서는 동적으로 10 개의 EditText를 만듭니다. 이제 런타임에 다른 값을주고 싶고 목록에 추가하고 싶습니다. 나는 EditText 객체를 object.getText.toString()과 같은 String 변수에 할당했다. 그러나 나는 어떤 가치도 가지지 않습니다. 나는 안드로이드에서 초보자입니다. 아무도 이것을 달성하는 방법을 도울 수 있습니까? 미리 감사드립니다.Android : Dynamic EditText 값을 얻는 방법

for(int i=0;i<=10;i++) 
{ 
requirement = require.get(i); 
RelativeLayout rl1 = new RelativeLayout(getActivity()); 
rl1.addView(req1); 
req1estimate_value = new EditText(getActivity()); 
String value = req1estimate_value.getText().toString(); 
rl2.addView(req1estimate_value); 
} 
+0

'EditText'에 입력을 적용하지 않았으므로 항상 null이됩니다. – Piyush

+0

req1estimate_value = 새 EditText (getActivity (??)); 일부 값 또는 매개 변수를 전달하는 param 전달 – Naufal

+0

@Naufal req1estimate_value.setText ("10"); 이렇게하면 모든 EditText에 10을 인쇄합니다. 하지만 난 런타임에 가치를주고 싶어요 그리고 난 목록에있는 모든 값을 추가하고 싶습니다. 작은 모범을 보여 주실 수 있습니까? – user3663600

답변

1

시도해보십시오. for 루프 밖에서 상대 레이아웃 (rl1)을 인스턴스화하고 그 안에 하위 뷰를 추가해야 모든 뷰가 상위 레이아웃에 속할 수 있습니다. 그 후 모든 EditText의 값에 액세스하는 경우를 사용할 수 있습니다 :

String viewValue; 
ViewGroup rootView = (ViewGroup) rl1; 
int count = rootView.getChildCount(); 
for (int i = 0; i < count; i++) { 
    View view = rootView.getChildAt(i); 
    if (view instanceof EditText) { 
        viewValue = ((EditText) view).getText().toString(); 
        Log.v("Value:: ", i + " " + viewValue); 
       } else if (view instanceof Spinner) { 
        viewValue = ((Spinner) view).getSelectedItem() 
          .toString(); 
        Log.v("Value:: ", i + " " + viewValue); 
       } 
    } 

지금 값을받은 후 당신은 목록에 넣을 수 있습니다 또는 어디에서든지 당신이 사용하고 싶습니다.