Extrair dados de um adapter

Bom dia, estou precisando extrair dados de um adapter para poder alimentar informações em um gráfico, como posso fazer isso?
Grato

Adapter, o design pattern? Você quem implementou? Está numa dependência?

Dê mais detalhes.

Abraços.

Opa, deixa eu tentar explicar melhor, sou iniciante em Android então estou apanhando em algumas coisas.
Tenho a seguinte classe implementando o padrão viewHolder.

public class TagsAdapter extends BaseAdapter {

    private List<Tags> tags = new ArrayList<>();

    @Override
    public int getCount() {
        return tags.size();
    }

    @Override
    public Object getItem(int position) {
        return tags.get(position);
    }

    @Override
    public long getItemId(int position) {
        return tags.get(position).getId();
    }


    // Constrói as views que representam cada uma das linhas da lista
    // Implementa o padrão View Holder para obter melhor performance
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view = convertView;
        ViewHolder holder;

        if(view == null){
            LayoutInflater inflater = LayoutInflater.from(parent.getContext());
            view = inflater.inflate(R.layout.tags_adapter, parent, false);
            holder = new ViewHolder();
            holder.txtData = (TextView) view.findViewById(R.id.txt_data);
            holder.txtHour = (TextView) view.findViewById(R.id.txt_hour);
            holder.txtTag = (TextView) view.findViewById(R.id.txt_tag);
            holder.txtValue = (TextView) view.findViewById(R.id.txt_value);
        }else{
            holder = (ViewHolder) view.getTag();
        }

        Tags tag = tags.get(position);
        holder.txtTag.setText(tag.getTag());
        holder.txtValue.setText(tag.getValue().toString());
        holder.txtHour.setText(tag.getHour());
        holder.txtData.setText(tag.getData());
        return view;
    }

    public void setTags(List<Tags> tags){
        this.tags.clear();
        this.tags.addAll(tags);
        notifyDataSetChanged();
    }

    public List<Tags> getTags(){
        return tags;
    }
    private static class ViewHolder{
        public TextView txtData;
        public TextView txtHour;
        public TextView txtTag;
        public TextView txtValue;

    }
    //remove todos os elementos da lista
    public void clear(){
        this.tags.clear();
        notifyDataSetChanged();
    }

}

Consigo jogar perfeitamente os dados dentro de um listview(os dados estão vindo de um JSONArray), só que agora quero manipular esses dados e não somente jogar dentro de um list, por exemplo, quero gerar um gráfico com esses dados.
Grato.

na sua activity implemente o metodo onitemClickListener e obtenha o objeto do item da lista assim:

public void onItemClick(AdapterView<?> adapter, View v, int position, long id) {
    Tags tag = (Tags) adapter.getItem(position);
}

Diego, obrigado pela resposta, mas pelo que eu entendo o método onItemClick retorna o item clicado neste caso do listview, porém não quero trabalhar com listview, quero sim manipular os dados que estão no adapter para por exemplo carregar em um gráfico, gostaria de saber se isso é possível e caso sim, como fazer.
Grato pela resposta.

Eu até tentei chamar direto em um List<> os dados da classe de leitura do JSONArray, mas ele dá erro fecha a aplicação.
Classe do webService:

public class WebServiceProxy {

    private HttpClient http = new DefaultHttpClient();
    //private static final Uri WEB_SERVICE_CONTENT = Uri.parse("http://192.168.0.100:8081/Teste/tag/listData?dt1=19/01/2016&data=20/01/2016");
    private static Uri WEB_SERVICE_CONTENT = null;
    //obtém a lista de tags
    public List<Tags> listTags(String data1, String data2) throws IOException, WebServiceException{
        //WEB_SERVICE_CONTENT = Uri.parse("http://192.168.0.100:8081/Teste/tag/listData?dt1='"+data1+"'&data='"+data2+"'");
        StringBuilder params = new StringBuilder();
        params.append("http://192.168.0.100:8081/Teste/tag/listData?dt1=");
        params.append(data1);
        params.append("&data=");
        params.append(data2);
        WEB_SERVICE_CONTENT = Uri.parse(params.toString());
        try {
            HttpGet get = new HttpGet(WEB_SERVICE_CONTENT.toString());

            //executa uma operação GET
            HttpResponse response = http.execute(get);

            String responseStr = getResponseAsString(response);

            JSONObject jsonObject1 = new JSONObject(responseStr);
            JSONArray array = jsonObject1.getJSONArray("tags");

            List<Tags> tags = new ArrayList<>();
            for(int i = 0; i < array.length(); i++){
                JSONObject jsonObject = array.getJSONObject(i);
                tags.add(Tags.createFromJSON(jsonObject));
            }

            return tags;
        }catch (JSONException e) {
            throw new WebServiceException("Erro ao processar JSON", e);
        }
    }
    //transforma a resposta do httpClient em uma String
    private String getResponseAsString(HttpResponse response) throws WebServiceException, IOException{
        //Lê o código do retorno do HTTP
        int code = response.getStatusLine().getStatusCode();

        if(code != HttpStatus.SC_OK){
            // Se o código não for de sucesso (200), lança exceção
            throw new WebServiceException("O http retornou o código de erro: " + code);
        }
        //extrai a String da resposta
        String responseStr = EntityUtils.toString(response.getEntity());
        Log.i(Constants.LOG_TAG, "JSON: " + responseStr);

        return responseStr;
    }

}

Primeiro: para chamar um serviço externo você precisa estar fora da main thread. Assim use um AsyncTask
http://developer.android.com/intl/pt-br/reference/android/os/AsyncTask.html

E pelo que vi na sua implementação a sua lista de Tagas está sendo criada com uma lista vazia.
Faça o seguinte, crie um construtor na sua classe TagsAdapter e passe a passe sua lista de tags ali, vai ficar assim

public class TagsAdapter extends BaseAdapter {
    private List<Tags> tags;

    public TagsAdapter(List<Tags> tags) {
        this,tags = tags;
    }
    //resto da implementação...

Então na sua Activity você cria a sua lista de Tags, devidamente preenchida com os dados e passa para o adatper quando você o instancia. Algo como

//Obtem a sua lista de tags
    List<Tags> listaTags = obterListaTags(); 
//adiciona no adapter
    TagsAdapter adapter = new TagsAdapter(listaTags);
//adiciona o adapter no seu listview
    listView.setAdapter(adapter);