2012-01-25 5 views
11

다른 상점을 표시하기 위해 목록 어댑터를 사용하고 있습니다. 다른 사용자가 상점을 선택하면 새로운 활동으로 가져 와서 해당 화면에서 좋아하는 상점을 추가 할 수 있습니다.Android onResume 업데이트 목록 어댑터

finish();을 호출하는 뒤로 단추가 있으며이 단추는 listview와 함께 화면으로 돌아갑니다.

이제는 목록보기가 업데이트되지 않습니다 (예 : 저장소가 즐겨 찾기에 추가되었음을 나타내지 않음).

@Override 
public void onResume() { 
    super.onResume(); 
    list.setAdapter(null);  
    updateMyList(); 
    adapter=new LazyAdapter(this, ((String[])names.toArray(new String[0])), 
     ((String[])status.toArray(new String[0]))); 
    list.setAdapter(adapter); 
} 

updateMyList()가 서버 API를 호출하고 이름과 상태 배열을 업데이트 :이 코드하지만 행운을 시도했다. 목록이 정말 업데이트하지 않습니다이 코드

...

+0

http://stackoverflow.com/a/17333384/596555 – boiledwater

답변

29

onCreate()에만 어댑터를 설정하고 onResume() 안에는 새 데이터 컬렉션으로 adapter.notifyDataSetChanged()을 호출해야합니다. 이렇게하면 ListView가 새 데이터 콜렉션으로 새로 고쳐집니다.

0

목록보기에 새보기를 추가하기 전에 이전의 모든보기

listView.removeAllViews(); 

을 제거한 다음 새 값으로 어댑터 클래스를 추가합니다. 한 가지는 두 번째 활동에서 돌아 오는 동안 값이 업데이트되고이 코드가 호출된다는 것입니다.

1
u는 위해 ArrayList 저장 목록을 추가해야 할 모든

먼저 다음 ADAPTER어레이리스트 제출는 점포 표시 ​​

list.setAdapter(adapter); 

리스트 뷰에 추가 명부; 테이크 아웃 onListItemClick 클릭하면 얻을 수 있습니다 listItem Id; 목록 항목의 ID를 사용하여 u는 자바 빈/세터와 getter 메소드 클래스를 가지고이

Intent intent=new Intent(getApplicationContext(),------.class); 
    startActivityForResult(intent); 

같은 의도를 제공 할 수 있습니다; getter 메소드를 정적으로 가져오고, 하위 액티비티에서 생성 한 스토어 이름을 설정한다. onBackPressed()이라는 재정의 메서드. 해당 메서드의 내부에 쓰기

setResult(RESULT_OK); 
finish(); 

부모 클래스에 onActivityForResult() 메서드를 사용하십시오.

myList.clear(); 
myList.add("your array list items");    
setListAdapter(adapter); 
adapter.notifyDataSetChanged(); 

나는이 당신을 도울 것입니다 생각 : 그 방법

arraylist.add(javabeanClassname.getName()); 

의 내부 Adapter 해당 ArrayList를 추가하고 코드

list.setAdapter(adapter); 
4

사용이 코드를 작성합니다.

감사합니다 ....

관련 문제