조각 두 조각 FragmentA 및 FragmentB 있습니다. FragmentB에서 항목을 클릭하면 fragmentTransaction이 일부 데이터를 전달합니다.조각 변경 후 목록보기 어댑터를 업데이트하는 방법
FragmentA에는 FragmentB의 일부 데이터가있을 때 변경해야하는 사용자 지정 목록보기 어댑터가 있습니다.
문제는 변경되지 않았습니다. 여기
이 프래그먼트public class CardsFragment extends ListFragment {
protected List<CardModel> list = new ArrayList<CardModel>();
protected ArrayAdapter<CardModel> adapter;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_cards, container,
false);
return rootView;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
adapter = new CardAdapter(getListView().getContext(),
list);
Bundle args = getArguments();
if (args != null) {
LoadCards(args.getString("key"), args.getString("keyId"));
}
else{
LoadAllCards();
}
}
private void LoadAllCards() {
/**
query the database code
**/
list.add(...);
if (getListView().getAdapter() == null) {
setListAdapter(adapter);
} else {
adapter.refill(list);
}
}
private void LoadCards(String key, String keyId) {
/**
query the database code
**/
list.add(...);
if (getListView().getAdapter() != null) {
adapter.refill(list);
}
}
/**
Refill function from adapter class
public void refill(List<CardModel> cards){
list.clear();
list.addAll(cards);
notifyDataSetChanged();
}
**/
}
당신은 refill()을 주석 처리했습니다. 그러나 이것이 내가 추천 한 코드입니다. – wwfloyd
다른 클래스 CardAdapter.java에 리필 코드가 있습니다! 시위를 목적으로 해설했습니다! –