2013-04-15 1 views
-3

안드로이드 용 EditText 배열을 만들고 싶습니다.하지만 ID를 찾는 것이 매우 힘든 작업이었습니다. 누군가 연결할 수 있습니까? 배열에 대한EditText에 배열을 사용할 때 ID를 찾는 경우

내 코드 :

  EdiTText[] mEditText = new EditText[20]; 
     for(int i =0;i<mEditText.length;i++){ 
      mEditText[i] = (EditText) findViewById(i); 
      } 
+0

정확히이 작업을 수행하려고합니까? 프로그래밍 방식으로'EditText'를 만들거나 기존 배열을'Array'에 넣으려고합니까? – codeMagic

+0

어떤 유형의 View 객체 배열을 만들 때마다 ListView와 같은 AdapterView와 사용자 정의 어댑터를 사용해야 만 자신이 궁금해하는 것이 무엇인지 파악해야합니다. 그 외에도 레이아웃 파일에 EditText가 선언되어 있습니까? – FoamyGuy

+0

XML에 20 개의 EditText가 있었습니까? mEditText [i] = (EditText)가 아니면 findViewById (i); - EditText [] 뒤에 20 개의 EditText 인스턴스가 이미 있기 때문에 사용하지 않아도됩니다. mEditText = new EditText [20]; – jimpanzer

답변

0

당신은 런타임에서 볼 수있는 ID를 설정할 수 없습니다. android id here에 대해 자세히 알아보십시오. 그냥 EditText를 초기화하는 생성자를 사용

을 :

mEditText[i] = new EditText(this); 
0

EditText 같은 UI 요소에 대한 두 가지 접근 방법이있다. 다음과 같이 레이아웃 xml에 구현하십시오.

<EditText android:id="@+id/myedittext" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" /> 

여기에서 EditText의 ID는 "myedittext"입니다. 그런 다음 해당 EditText를 사용하여 코드에서 코드를 참조하여

EditText et = (EditText)findViewById(R.id.myedittext); 

b와 같은 작업을 수행 할 수 있습니다. 프로그래밍 당신은 또한 수동으로 UI/레이아웃이 EditText을 추가해야합니다이 방법으로

EditText et = new EditText(context) 

처럼 그들을 만들 수 있습니다.

두 방식을 혼합하여 작동하지 않습니다.

당신이 얼마나 많은 UI 요소 (귀하의 경우 EditText 초)를 필요로하는지 미리 알지 못한다면 프로그래밍 방식으로 멋지게 작성해야하지만 멋지게 올바르게 작성해야합니다.

0

나는 왜 이것을하려고하는지 묻지 않을 것입니다. 그러나 ...

findViewById에 필요한 리소스 ID는 id에 루프 인덱스를 사용하는 코드 스 니펫에 의해 암시 된 것처럼 0에서 시작하지 않습니다.

EditText가 XML로 작성된 경우, 양식 R.id.xxxx의 자원 ID가 필요합니다. ID의 int []를 만들고 해당 ID를 findViewById에 전달할 수 있습니다.

코드에서 EditText를 만들면 ID가 없으므로 작성시 EditText 객체를 저장해야합니다.

관련 문제