how to show data in cardview from a query in JSON

0

I have several cardview and I want to insert images and the value of some Ratingbars from a database, but without making the php file could you help me please? this is what I have so far

Adapter

 public SearchHorizontalAdapter(ArrayList<String> dataset) {
        mDataset = dataset;
    }

    @Override
    public SearchHorizontalAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.row, parent, false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(SearchHorizontalAdapter.ViewHolder holder, int position) {
        holder.mTitle.setText(mDataset.get(position));
    }

    @Override
    public int getItemCount() {
        return mDataset.size();
    }

    public class ViewHolder extends RecyclerView.ViewHolder {

        public TextView mTitle;

        public ViewHolder(View itemView) {
            super(itemView);
            mTitle = (TextView) itemView.findViewById(R.id.title);
        }
    }
}

SearchView

package mx.plif.plifandroid.HomeFragments;


import android.app.ListActivity;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.MenuItemCompat;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.SearchView;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import mx.plif.plifandroid.Adapters.BusinessListAdapter;
import mx.plif.plifandroid.Adapters.SearchHorizontalAdapter;
import mx.plif.plifandroid.Adapters.SearchVerticalAdapter;

import android.support.v4.app.Fragment;

import android.widget.Toast;

import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;

import org.json.JSONException;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.ArrayList;

import mx.plif.plifandroid.Models.Business;
import mx.plif.plifandroid.R;
import mx.plif.plifandroid.Requerters.PlifRequestBase;


public class SearchFragment extends Fragment {
    private ArrayList<Business> arrayBusiness;

    private FileReader fr;
    private BufferedReader br;
    private Gson gson;
    private FileWriter fw;

    TextView textView;
    private RecyclerView mRecyclerView;
    private RecyclerView.Adapter mAdapter;
    private RecyclerView.LayoutManager mLayoutManager;
    private RecyclerView mLowerRecyclerView;

    private RecyclerView.Adapter mLowerAdapter;
    private RecyclerView.LayoutManager mLowerLayoutManager;

    private ArrayList<String> mDataset;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                Bundle savedInstanceState) {

        View android = inflater.inflate(R.layout.search_activity, container, false);
        textView = (TextView) android.findViewById(R.id.textView);
       Toolbar toolbar = (Toolbar) android.findViewById(R.id.toolbar);
        ((AppCompatActivity)getActivity()).setSupportActionBar(toolbar);
        setHasOptionsMenu(true);
        return android;
            }

    @Override
    public void onPrepareOptionsMenu(Menu menu) {
       // MenuItem mSearchMenuItem = menu.findItem(R.id.action_search);

        final MenuItem mSearchMenuItem = menu.findItem(R.id.action_search);
        final SearchView searchView = (SearchView) mSearchMenuItem.getActionView();
        //final SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
        searchView.setQueryHint(getText(R.string.search));
        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) {

                Toast.makeText(SearchFragment.this.getActivity(), R.string.buscado, Toast.LENGTH_SHORT).show();
                searchView.setQuery("", false);
                searchView.setIconified(true);
                mDataset = new ArrayList<>();

                for (int i = 0; i < 10; i++) {
                    mDataset.add(query+" " + i);
                }

                mRecyclerView = (RecyclerView) getActivity().findViewById(R.id.high_recycler_view);
                mAdapter = new SearchHorizontalAdapter(mDataset);
                mLayoutManager = new LinearLayoutManager(SearchFragment.this.getActivity(), LinearLayoutManager.HORIZONTAL, false);
                mRecyclerView.setLayoutManager(mLayoutManager);
                mRecyclerView.setAdapter(mAdapter);

                mLowerRecyclerView = (RecyclerView) getActivity().findViewById(R.id.lower_recycler_view);
                mLowerAdapter = new SearchVerticalAdapter(mDataset);
                mLowerLayoutManager = new GridLayoutManager(SearchFragment.this.getActivity(),2);
                mLowerRecyclerView.setLayoutManager(mLowerLayoutManager);
                mLowerRecyclerView.setAdapter(mLowerAdapter);


                return true;
            }

            @Override
            public boolean onQueryTextChange(String newText) {
                textView.setText(newText);
                return true;
            }
        });

        View searchPlate = (View) searchView.findViewById(android.support.v7.appcompat.R.id.search_plate);
        searchPlate.setBackgroundResource(R.mipmap.textfield_custom);

        //return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.action_settings:
                action(R.string.action_settings);
                return true;

            default:
                return super.onOptionsItemSelected(item);
        }
    }

    private void action(int resid) {
        Toast.makeText(this.getActivity(), getText(resid), Toast.LENGTH_SHORT).show();
    }

}
    
asked by Juan P. 10.02.2017 в 18:28
source

1 answer

-1
JSONObject jData = new JSONObject(s);
JSONArray jStrings = jsonObject.getJSONArray("nombre_array");
ArrayList<String> dataSet = new ArrayList<>();
for (int i = 0; i < jStrings.length(); i++) {
    dataSet.add(jStrings.getJSONObject(i).getString("nombre_atributo"));
}
searchHorizontalAdapter = new SearchHorizontalAdapter(dataSet);

recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
recyclerView.setHasFixedSize(true);
recyclerView.setAdapter(searchHorizontalAdapter);
searchHorizontalAdapter.notifyDataSetChanged();
    
answered by 10.02.2017 / 21:40
source