@Chesterfield25

Как передать значение json объекта с одного Activity в другой?

У меня есть rest api в котором есть категории и материалы категорий. Есть CategoryActivity в котором с помощью JsonObject и JsonArray я получаю список категорий в приложение. Для того что бы получить материалы из каждой категории мне нужно сформировать запрос site.com/api/read_one_category.php?category_id=? где знак вопроса это id категории. В CategoryActivity я получаю id каждой категории.
Мне нужно сделать что бы при нажатие на текст названия категории бралось id той категории и передавалось на другое Activity в котором сформировался соответствующий url запроса.

Вот код активности с категориями

public class FaucetCategoryActivity extends AppCompatActivity {

    ActivityFaucetCategoryBinding binding;
    private AdView mAdView;
    private InterstitialAd mInterstitialAd;
    private static String CATEGORY_URL = "https://site.ru/api/category/read.php";

    List<CategoryModel> categoryList;
    RecyclerView recyclerView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        binding = ActivityFaucetCategoryBinding.inflate(getLayoutInflater());
        View view = binding.getRoot();
        setContentView(view);

        //Ads init
        MobileAds.initialize(this, new OnInitializationCompleteListener() {
            @Override
            public void onInitializationComplete(InitializationStatus initializationStatus) {
            }
        });

        //Ad Banner
        mAdView = findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);

        //Back to MainActivity
        binding.back.setOnClickListener(v -> {
            Intent intentback = new Intent(FaucetCategoryActivity.this, MainActivity.class);
            startActivity(intentback);
            finish();
        });

        categoryList = new ArrayList<>();
        recyclerView = findViewById(R.id.recyclerView);

        GetData getData = new GetData();
        getData.execute();
    }

    public class GetData extends AsyncTask<String, String, String> {

        @Override
        protected String doInBackground(String... strings) {
            String current = "";

            try {
                URL url;
                HttpURLConnection urlConnection = null;

                try {
                    url = new URL(CATEGORY_URL);
                    urlConnection = (HttpURLConnection) url.openConnection();

                    InputStream is = urlConnection.getInputStream();
                    InputStreamReader isr = new InputStreamReader(is);

                    int data = isr.read();
                    while (data != -1) {
                        current += (char) data;
                        data = isr.read();
                    }
                    return current;

                } catch (MalformedURLException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                } finally {
                    if (urlConnection != null) {
                        urlConnection.disconnect();
                    }
                }
            } catch (Exception e){
                e.printStackTrace();
            }
            return current;
        }

        

        @Override
        protected void onPostExecute(String s) {
            try {
                JSONObject jsonObject = new JSONObject(s);
                JSONArray jsonArray = jsonObject.getJSONArray("records");

                for (int i = 0 ; i < jsonArray.length() ; i++){
                    JSONObject jsonObject1 = jsonArray.getJSONObject(i);

                    CategoryModel categoryModel = new CategoryModel();
                    categoryModel.setId(jsonObject1.getString("id"));
                    categoryModel.setName(jsonObject1.getString("name"));
                    categoryModel.setImg(jsonObject1.getString("img"));

                    categoryList.add(categoryModel);


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

            PutDataIntoRecyclerView(categoryList);
        }
    }

    private void PutDataIntoRecyclerView(List<CategoryModel> categoryList) {
        CategoryAdapter adapter = new CategoryAdapter(this, categoryList);
        recyclerView.setLayoutManager(new LinearLayoutManager(this));

        recyclerView.setAdapter(adapter);


    }


}
  • Вопрос задан
  • 66 просмотров
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы