основал "id", который приходит в форме JSON и хранится в переменной "j", но не может найти по id конкретного элемента onitemclicklistener gridview - PullRequest
0 голосов
/ 24 февраля 2019

хочу найти «id» onItemClick из Grid (во фрагменте) и отправить в другой фрагмент, но получая всегда последний «id» элементов при любом щелчке по представлению, которое он отправляет всегда Last id Как получить только определенный идентификаторэлемент и отправить в другой фрагмент?

Я хочу найти идентификатор определенного элемента при щелчке и отправить определенный идентификатор в другой фрагмент, но я получаю только последний идентификатор после нажатия любого элемента Получение всегда только последнего идентификатора Не ​​знаю почему?

хотите найти в GridCateFragment "id" после нажатия на конкретный элемент и хотите отправить этот конкретный идентификатор в CateFragment, но после щелчка на любом элементе всегда получаете только последний идентификатор элемента.

GridCateFragment

 public class GridCateFragment   extends Fragment {


    View rootView;


    public static final String TAG_IMAGE_URL = "image";
    public static final String TAG_NAME = "name";
    public static String MySharedPreffilter="mySharedPrefForFilter";

    private GridView gridView;


    private ArrayList<String> images;
    private ArrayList<String> names;
    private ArrayList<String> id;



    public GridCateFragment() {

    }


    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);



    }




    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        rootView = inflater.inflate(R.layout.fragment_institutions, container, false);
        //initUI();
        gridView = (GridView) rootView.findViewById(R.id.gridView);



        images = new ArrayList<>();
        names = new ArrayList<>();
        id= new ArrayList<>();
        getData();


        return rootView;

    }







    private void getData(){
        String tag_string_req = "req_register";
        String url = AppConfig.Base_Url +AppConfig.App_api+AppConfig.URL_Cat;
        //Showing a progress dialog while our app fetches the data from url
        final ProgressDialog loading = ProgressDialog.show(getContext(), "Please wait...","Fetching data...",false,false);

        //Creating a json array request to get the json from our api

        final StringRequest jsonObjReq = new StringRequest(Request.Method.GET,url, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {


                        //Dismissing the progressdialog on response
                        loading.dismiss();

                try {

                    String jsonObjReq = null;
                    JSONObject obj = new JSONObject(String.valueOf(response));
                    String status = obj.getString("status");
                    String message = obj.getString("message");
                    Log.d(TAG, "Register Response1: " + status);
                    Log.d(TAG, "Register Response2: " + message);
                    JSONObject obj1 = new JSONObject(String.valueOf(obj));
                    JSONObject result = obj.getJSONObject("result");
                    Log.d(TAG, "Register Response3: " + result);
                    JSONArray category = result.getJSONArray("category");
                    Log.d(TAG, "Register Response4: " + category);

                    for (int i = 0; i < category.length(); i++) {
                        JSONObject object = category.getJSONObject(i);
                        Log.d(TAG, "Register Response5: " + object);
                        String k =object.getString("image");
                        String j=object.getString("id");
                        String l=(object.getString("name"));
                        Log.d("feedArray", " " + k);
                        Log.d("feedArray1", " " + l);
                        Log.d("idssss",""+j);
                        //getting image url and title from json object
                        names.add(l);
                        images.add(k);
                        id.add(j);

                        SharedPreferences.Editor editor = getActivity().getSharedPreferences(MySharedPrefLogin,MODE_PRIVATE).edit();
                        editor.putString("j",j);

                        editor.apply();





                        Log.d("feedArrayListAfterParse", " " + object.getString("name"));
                        Log.d("feedArrayListAfterPa1", " " + object.getString("id"));
                        Log.d("feedArrayListAfte", " " + object.getString("image"));
                    }




                }
catch (JSONException e){
                        e.printStackTrace();
                    }


                GridViewAdapter gridViewAdapter = new GridViewAdapter(getContext(),names,images,id);

                //Adding adapter to gridview
                gridView.setAdapter(gridViewAdapter);


                gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                    public void onItemClick(AdapterView<?> parent, View view,
                                            int position, long id) {
                        //do stuff

                        Fragment fragment = new CateFragment();
                        FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
                        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
                        fragmentTransaction.replace(R.id.frame_content, fragment);
                        fragmentTransaction.addToBackStack(null);
                        fragmentTransaction.commit();








                    }
                });









                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {

                    }
                }
        );

        //Creating a request queue
        RequestQueue requestQueue = Volley.newRequestQueue(getContext());
        //Adding our request to the queue
        requestQueue.add(jsonObjReq);
    }








}

CateFragment

public class CateFragment extends Fragment
{
    View rootView;
    String loadedString;

            CustomListAdapter institutionAdapter;
            ArrayList<Movie> institutions;
String j;

    private ArrayList<String> images;
    private ArrayList<String> names;

    private ListView listView;
public CateFragment() {

        }



@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);



        }



    @Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        rootView = inflater.inflate(R.layout.fragment_gridcatefragment, container, false);
        listView = (ListView) rootView.findViewById(R.id.list);


        images = new ArrayList<>();
        names = new ArrayList<>();









        getClientsList();



        return rootView;

        }




    private void getClientsList() {
    String tag_string_req = "req_register";
    SharedPreferences prefs = getContext().getSharedPreferences(MySharedPrefLogin, MODE_PRIVATE);
    loadedString = prefs.getString("j", j);
    Log.d("hdshfh","dfsfh"+loadedString);
    String id = loadedString;
    Log.d("check",""+id);
        String url = AppConfig.Base_Url +AppConfig.App_api+AppConfig.URL_SubCat+id;
    Log.d("check1",""+url);

    final ProgressDialog loading = ProgressDialog.show(getContext(), "Please wait...","Fetching data...",false,false);


    final StringRequest jsonObjReq = new StringRequest(Request.Method.GET,url, new Response.Listener<String>() {

           @Override
public void onResponse( String response) {
               loading.dismiss();

        try {

            String jsonObjReq = null;
            JSONObject obj = new JSONObject(String.valueOf(response));
            String status = obj.getString("status");
            String message =obj.getString("message");
            Log.d(TAG, "Register Response11: " + status);
            Log.d(TAG, "Register Response22: " + message);
            JSONObject obj1=new JSONObject(String.valueOf(obj));
            JSONObject result = obj.getJSONObject("result");
            Log.d(TAG, "Register Response33: " + result);
            JSONArray category=result.getJSONArray("category");
            Log.d(TAG, "Register Response44: " + category);

            for(int i=0;i<category.length();i++) {
                JSONObject object = category.getJSONObject(i);
                Log.d(TAG, "Register Response54: " + object);
                String k = object.getString("image");
                j = object.getString("id");
                String l = (object.getString("name"));
                Log.d("frray", " " + k);
                Log.d("Array1", " " + l);
                Log.d("iss", "" + j);
                //getting image url and title from json object
                names.add(l);
                images.add(k);


                // institutionAdapter.notifyDataSetChanged();
            }
        }catch (JSONException e){
        e.printStackTrace();
        }


               CustomListAdapter customListAdapter = new CustomListAdapter(getContext(), names, images);

               //Adding adapter to gridview
               listView.setAdapter(customListAdapter);
        }

        }, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
        Toast.makeText(getContext(), "Error", Toast.LENGTH_SHORT).show();
        }
        });
        Appcontrol.getInstance().addToRequestQueue(jsonObjReq,tag_string_req);
        }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...