У меня есть 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);
}
}