0

ListView가있는 Fragment가 있습니다. 이 ListView는 어댑터로 채워져 있습니다.Refresh Fragment from AlertDialog

거기서 DialogFragment를 시작합니다. ListView의 현재 행에 대한 데이터를 입력 할 수 있습니다.

이제 대화 상자가 닫히면 대화 상자 아래의 조각을 새로 고칩니다.

어떻게 ListView를 새로 고칠 수 있습니까? 조각 외부에서 notifyDataSetChanged()를 호출 할 수 없습니다.

콜백 로더에 대해 읽었지만 배열로 ListView를 채 웁니다. 늘어나는만큼 내가 콜백 로더를 이해를 위해 커서를 사용해야합니다.

나는 또한 활동의 ​​함수를 호출하려고했지만 notifyDataSetChanged()도 호출 할 수 없었다. 어댑터를 정적으로 만들지 못했습니다.

나는 누군가 내 문제를 이해하고 그것을 고치기를 멈출 수 있기를 바랍니다.

답변

0

호출하는 조각을 수신기로 설정할 수 있습니다.

FragmentManager fm = getSupportFragmentManager(); 
MyDialog d = new MyDialog(); 
d.setDataChangeListener(this); 
d.show(fm, "fragment_name"); 
1

귀하의 경우에는 대화 상자를 생성하는 클래스에 어댑터 인스턴스를 전달합니다. 다른 해결책이 보이지 않습니다.

Fragment 클래스에서 Dialog를 만들고 내부 클래스로 OnClickListener를 정의하여 Adapter에 직접 액세스 할 수 있습니다.

이벤트 버스와 같은 것을 사용할 수도 있습니다.이 이벤트 버스는 배우자 연결에 많은 도움이됩니다.