хочу найти «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);
}
}