Am so called newer to android development and i'm developing my first app, I was looking for a way to list content of the app and i found listviewis one of the way i can show the content but i have to use custom adapter to style it. After looking around relevant questions how adapter is been made i found a good reference here Custom Adapter for List View and my listview is able to work but the problem i am only seeing the last row of my while() contents.
This problem is because 
ThreeStrings threeStrings = new ThreeStrings(feed_title, feed_date, feed_radio); threeStringsList.add(threeStrings);
has been defined inside while loop as am new to java am not able to implement it to pass all the elements to adapter.
            List<ThreeStrings> threeStringsList = new ArrayList<>();
            ListView listView = (ListView) findViewById(R.id.datalistview);
            ThreeHorizontalTextViewsAdapter threeHorizontalTextViewsAdapter = new ThreeHorizontalTextViewsAdapter(getApplicationContext(), R.layout.three_horizontal_text_views_layout, threeStringsList);
            listView.setAdapter(threeHorizontalTextViewsAdapter);
            // fields of feed [array] and loop
            int feed_id;
            String feed_radio, feed_title, feed_api, feed_frequency, feed_type, feed_date;
            JSONObject feeds = object.getJSONObject("feeds");
            Iterator<String> keys = feeds.keys();
            while (keys.hasNext()) {
                JSONObject row = feeds.getJSONObject(keys.next());
                feed_title  = row.getString("feed_title");
                feed_radio  = row.getString("feed_radio");
                feed_date   = row.getString("feed_date");
                ThreeStrings threeStrings =  new ThreeStrings(feed_title, feed_date, feed_radio);
                threeStringsList.add(threeStrings);
                adapter.notifyDataSetChanged();
            }
Is there anyone who can help to make it work?
EDIT
public class ThreeHorizontalTextViewsAdapter extends ArrayAdapter<ThreeStrings> {
private int layoutResource;
public ThreeHorizontalTextViewsAdapter(Context context, int layoutResource, List<ThreeStrings> threeStringsList) {
    super(context, layoutResource, threeStringsList);
    this.layoutResource = layoutResource;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View view = convertView;
    if (view == null) {
        LayoutInflater layoutInflater = LayoutInflater.from(getContext());
        view = layoutInflater.inflate(layoutResource, null);
    }
    ThreeStrings threeStrings = getItem(position);
    if (threeStrings != null) {
        TextView leftTextView = (TextView) view.findViewById(R.id.leftTextView);
        TextView rightTextView = (TextView) view.findViewById(R.id.rightTextView);
        TextView centreTextView = (TextView) view.findViewById(R.id.centreTextView);
        if (leftTextView != null) {
            leftTextView.setText(threeStrings.getLeft());
        }
        if (rightTextView != null) {
            rightTextView.setText(threeStrings.getRight());
        }
        if (centreTextView != null) {
            centreTextView.setText(threeStrings.getCentre());
        }
    }
    return view;
}
}
 
    