2011-01-13 4 views
1

현재 Android 앱을 개발 중입니다. 앱에 2 가지 활동이 있습니다. 활동 1은 ListActivity입니다. ListActivity는 표준 Activity를 호출합니다. 두 번째 활동이 끝나면 finish() 메서드를 사용하여 ListActivity로 돌아 오는 활동을 닫습니다. ListActivity가 새 데이터로 새로 고침해야합니다.ListView가 android에서 활동으로 돌아 왔을 때 새로 고침

답변

2

활동으로 돌아올 때 어댑터에 notifyDataSetChanged()을 호출하면됩니다.

API 상태 :

가 기저 데이터가 변경되었으며 그것 자체를 리프레시하도록 부착 뷰를 통지()

보이드 notifyDataSetChanged.

+0

나는 당신의 답변이 더 좋을 것 같으니까 첫 번째 활동이 다시 시작 이벤트로 돌아 오지 않으므로 답변을 게시하고 싶지 않습니까? –

+0

그러면 그 메소드의 ArrayAdapter에서'notifyDataSetChanged()'를 호출 할 수 있습니다. – sahhhm

+0

@ Jason, 네,하지만 어댑터가 업데이트 될 것이라고 생각하지 않습니다. 나는 당신이 진정으로 알릴 필요가 있다고 생각합니다. – AedonEtLIRA

1

데이터를 의도적으로 패키지 했습니까? 그 문제에 대해 당신은 StartActivityForResult()를 시작 했습니까? 그렇다면 onActivityResult (...) 메서드를 재정 의하여 원하는 데이터를 가져 와서 수행해야 할 작업에 데이터를 추가하십시오. 그런 다음 sahhhm과 같이 notifyDataSetChanged()를 호출하십시오.

~ Aedon리스트 뷰에서 정보를 다시로드해야합니다

0

...

@Override 
protected void onResume() { 
    super.onResume(); 

    mAdapter= new mYCustomAdapter(mActivity.this, valuesReloaded); 
      mList.setAdapter(mAdapter); 

      mAdapter.myMethodThatNotifyChange(); 

} 

여기서 valuesReloaded 새로운 가치와 새로운 배열입니다. mAdapter는 사용자 정의 어댑터 myMethodThatNotifyChange는 당신이 (단지 클래스 어댑터에서 호출 할 수있는 사용자 정의 어댑터) notifyDataSetChanged()를 호출해야합니다 클래스 MyCustomAdapter의 방법

class myCustomAdapter extends BaseAdapter{ 
... 
... 
myMethodThatNotifyChange{ 
notifyDataSetChanged(); 
} 
... 
... 
} 

또는 실제 활동을 마무리하고,이다 새로운 의도로 새로 고침

@Override 
    protected void onResume() { 
     super.onResume(); 

Intent mIntet = new Intent(mlistViewPersons.this , mlistViewPersons.class) 
startActivity(mIntent); 
finish(); 

} 
관련 문제