1

내가 동적으로 EditText을 만들고 동적으로 ID를 설정 활동을 가지고안드로이드, 생성 editTexts 'ID 및 뷰의 일반 텍스트 값은 동적으로

Iterator iterator = List.iterator(); 

    while (iterator.hasNext()) 
    { 
    .... 
    editTextExample.generateViewId(); 

    } 

나는 다음 활동에 갈 때와 올 onResume (onBackPressed()), 이전 활동이 재개 될 때 사용자가 입력 한 동적으로 생성 된 EditText의 텍스트 값을 지우고 싶습니다. (onResume())

미리 감사드립니다.

답변

0

뒤로 버튼을 누르면 다음과 같은 활동 콜백 메소드가 호출됩니다.

onPause() 
onStop() 
onDestroy() 

활성이 파괴됩니다.

그리고 다시 시작할 때 다시 생성됩니다. 콜백 메소드는 다시 시작할 때 사용됩니다.

onCreate() 
onStart() 
onResume() 

onResume() 방법으로 모든 편집 문구를 지울 수 있습니다.

해피 코딩 !!

2

은 IDS

ArrayList<Integer> mIds = new ArrayList<>(List.size()) 
... 
while (iterator.hasNext()) 
{ 
    ... 
    int id = View.generateViewId(); 
    editTextExample.setId(id); 
    mIds.add(id); 
} 

을 저장하고 그 내용을 취소 :

void onResume() { 
    for (int id: mIds) 
    findViewById(id).setText(""); 
} 
+0

이 감사합니다, 저를 도왔다. 그러나 generateViewId를 사용하여 동적으로 ID를 설정하지 못했습니다 (일부 지점에서 텍스트 값이 지워지지 않고 있음) 대신 id에 int 값을 사용하고 mIds List에 저장합니다. –

+1

EditText 인스턴스에'generateViewId()'의 결과를 지정하지 않은 것 같습니다. 'id = View.generateViewId(); editTextExample.setId (id); mIds.add (id)' –

+0

보기 id에 양의 int 값을 사용하면 충돌이 없다는 것을 보장 할 수 있습니다. 'generateViewId' 보장합니다. –