I have 2 fragments in one Activity. First fragment: The user choose date and time and then press "CHOOSE" button. The selection of the user sent to SQL DB. the user can select as much as he want date and time. second fragment: set in ListView all the selection of the user(date and time) by reading from the SQL DB.
My Problem: I'm not succeed to refresh the listView every time the user press "CHOOSE" button in fragment 1.
First Fragment
public class ChooseTimeFragment extends Fragment {
String date,time,amPm;
Spinner spinnerDate,spinnerTime,spinnerAmPm;
private DbHelper db;
public ChooseTimeFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
final View view=inflater.inflate(R.layout.fragment_choose_time, container, false);
db = DbHelper.getInstance(view.getContext());
spinnerDate = (Spinner) view.findViewById(R.id.spinnerDate);
ArrayAdapter<CharSequence> adapterDate = ArrayAdapter.createFromResource(getActivity(),
R.array.date_array, android.R.layout.simple_spinner_item);
adapterDate.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerDate.setAdapter(adapterDate);
date=spinnerDate.getSelectedItem().toString();
spinnerTime = (Spinner) view.findViewById(R.id.spinnerTime);
ArrayAdapter<CharSequence> adapterTime = ArrayAdapter.createFromResource(getActivity(),
R.array.time_array, android.R.layout.simple_spinner_item);
adapterTime.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerTime.setAdapter(adapterTime);
time=spinnerTime.getSelectedItem().toString();
spinnerAmPm = (Spinner) view.findViewById(R.id.spinnerAmPm);
ArrayAdapter<CharSequence> adapterAmpm = ArrayAdapter.createFromResource(getActivity(),
R.array.amPm_array, android.R.layout.simple_spinner_item);
adapterAmpm.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerAmPm.setAdapter(adapterAmpm);
amPm=spinnerAmPm.getSelectedItem().toString();
Button bChoose=(Button) view.findViewById(R.id.btnChooseDT);
bChoose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
initialize();
if(validate()){
db.addUserChooseDateAndTime(date,time+amPm,view.getContext());
}
}
});
return view;
}
private void initialize(){
date=spinnerDate.getSelectedItem().toString();
time=spinnerTime.getSelectedItem().toString();
amPm=spinnerAmPm.getSelectedItem().toString();
}
private boolean validate(){
boolean valid=true;
if (date.equals("DATE")||time.equals("TIME")){
Toast.makeText(getContext(),date + " Please Enter Date and Time", Toast.LENGTH_SHORT).show();
valid=false;
}
return valid;
}
}
Second Fragment
public class ChosenListFragment extends Fragment {
private DbHelper db;
public static Activity myActivity;
public ChosenListFragment() {
}
MyChosenListViewAdapter adapter;
ListView listView;
ArrayList<TimeAndDate> timeAndDateArrayLis;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.fragment_chosen_list, container, false);
db = DbHelper.getInstance(view.getContext());
refreshList(view);
return view;
}
public void refreshList(View view){
ArrayList<TimeAndDate> timeAndDateArrayList =db.getListDateAndTime(getContext());
adapter = new MyChosenListViewAdapter(getContext(), timeAndDateArrayList);
listView = (ListView) view.findViewById(R.id.listDateAndTime);
listView.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
}
After long search, any help? thanks!