I'd like to be able to run a method from the HistoryFragment class in the HistoryAdapter class. I have commented the location where I would like to run this method. If you can see another way around what I am attempting to do I'm all ears. I wish to make the text view display "No History Available" when the item list is empty (there is no data being displayed). Would love to hear your input! Thanks
Here is my adapter class to create a custom listview:
package uk.co.rascagneres.clocking_app;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ListAdapter;
import android.widget.TextView;
import java.util.ArrayList;
/**
 * Created by Jacques on 08/08/2016.
 */
public class HistoryAdapter extends BaseAdapter implements ListAdapter{
    private  ArrayList<String> list = new ArrayList<String>();
    private Context context;
    public ArrayList<String> idArray = new ArrayList<String>();
    DatabaseHandler db;
    public HistoryAdapter (ArrayList<String> list, Context context, ArrayList<String> idArray, DatabaseHandler db){
        this.list = list;
        this.context = context;
        this.idArray = idArray;
        this.db = db;
    }
    @Override
    public int getCount(){
        return list.size();
    }
    @Override
    public Object getItem(int pos){
        return list.get(pos);
    }
    @Override
    public long getItemId(int pos){
        return 0;
    }
    @Override
    public View getView(final int position, View convertView, ViewGroup parent){
        View view = convertView;
        if(view == null){
            LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            view = inflater.inflate(R.layout.history_list, null);
        }
        final View innerView = view;
        TextView listItemText = (TextView)view.findViewById(R.id.list_item_string);
        listItemText.setText(list.get(position));
        Button deleteBtn = (Button)view.findViewById(R.id.delete_btn);
        deleteBtn.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){
                db.deleteRowID(Integer.parseInt(idArray.get(position)));
                list.remove(position);
                notifyDataSetChanged();
                idArray.remove(position);
                //RUN setText() in HistoryFragment from here!
            }
        });
        return view;
    }
}
Here is my HistoryFragment class:
package uk.co.rascagneres.clocking_app;
import android.app.Fragment;
import android.database.Cursor;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
/**
 * Created by Jacques on 03/08/2016.
 */
public class HistoryFragment extends Fragment {
    DatabaseHandler db;
    View myView;
    ArrayList<String> historyArray = new ArrayList<String>();
    ArrayList<String> idArray = new ArrayList<String>();
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        myView = inflater.inflate(R.layout.history_layout, container, false);
        db = new DatabaseHandler(getActivity());
        ArrayList<String> list = insertData();
        HistoryAdapter adapter = new HistoryAdapter(list, getActivity(), idArray, db);
        ListView lView = (ListView)myView.findViewById(R.id.listView);
        lView.setAdapter(adapter);
        return myView;
    }
    public ArrayList<String> insertData(){
        Cursor c = db.getAllData();
        ArrayList<String> list = new ArrayList<String>();
        while(c.moveToNext()) {
            int id = c.getInt(0);
            long in = c.getLong(1);
            long out = c.getLong(2);
            String outTime;
            if(out == 0){
                outTime = "N/A";
            }else{
                outTime = ClockingFragment.getDate(out, "HH:mm");
            }
            String date = ClockingFragment.getDate(in, "EEE, MMM d");
            String inTime = ClockingFragment.getDate(in, "HH:mm");
            historyArray.add(date + "\n Clocked In: " + inTime + "\n Clocked Out: " + outTime + "\n");
            idArray.add(String.valueOf(id));
        }
        TextView histAvail = (TextView)myView.findViewById(R.id.noHist);
        if (historyArray.isEmpty()){
            histAvail.setText("No History Available!");
        }else {
            histAvail.setText("");
        }
        return historyArray;
    }
    public ArrayList<String> getIdArray(){
        System.out.println(idArray);
        return idArray;
    }
    public void setText(){
        TextView histAvail = (TextView)myView.findViewById(R.id.noHist);
        histAvail.setText("No History Available!");
    }
}
 
    