엑티비티에서는 데이터가 잘 추가되던 커스텀 리스트뷰가있습니다.
프레그먼트에 사용해야해서 다 옮기고 테스트를 해보는데,
setAdapter 후, 어댑터에 데이터 추가하고 notifyDataSetChanged() 를 호출해줘도 리스트뷰에 데이터가 추가되지 않습니다.. ㅠ
먼저 소스부터 첨부하겠습니다 !! (최대한 정리했습니다)
----------
public static PrivateFragment newInstance(String param1, String param2) {
.....
.....
private Adapter listadapter;
private ArrayList<Data> lists = new ArrayList<>();
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v2 = inflater.inflate(R.layout.fragment_private, container, false); // Listview 가 있는 레이아웃 인플레이트. (findViewById 사용 위해)
listView = (ListView) v2.findViewById(R.id.listView);
listadapter = new listAdapter(getActivity(), lists);
listView.setAdapter(listadapter);
lists.clear();
Data data = new Data(데이터1, 데이터2);
lists.add(data);
listadapter.notifyDataSetChanged();
return inflater.inflate(R.layout.fragment_private, container, false);
}
class listAdapter extends ArrayAdapter<Data> {
public listAdapter(Context context, List<Data> objects) {
super(context, 0, objects);
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = getLayoutInflater().inflate(R.layout.memo_list_item, parent, false);
}
TextView txtDate = (TextView) convertView.findViewById(R.id.txtDate);
TextView txtMemo = (TextView) convertView.findViewById(R.id.txtMemo);
final Data data = lists.get(position);
txtDate.setText(data.getDate());
txtMemo.setText(data.getShortText());
return convertView;
}
}
}
-----------
lists.add(data); 후에 lists 를 get해서 확인해보았는데 lists 에는 데이터가 들어있습니다!
무엇이 문제일까요...? ㅠㅠ
context 문제인것 같기도 하면서.. 감이 안잡히네요..