I get a request for all orders, I have to take the id from there and put it on the request that shows the details of the order "?project_id= + id"`
my fragment, the place where i display the list of orders
package com.example.myapplication.freelancer.bottom_Menu.search_worker;
public class SearchWorker_ extends Fragment {
List<OrdersModelClass> orderList;
RecyclerView recyclerView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_search_worker_, container, false);
orderList = new ArrayList<>();
recyclerView = view.findViewById(R.id.recycler_View);
GetData getData = new GetData();
getData.execute();
return view;
}
public class GetData extends AsyncTask<String, String, String>{
@Override
protected String doInBackground(String strings) {
String current = "";
try {
URL url;
HttpURLConnection urlConnection = null;
try {
String get_order = "https://tjfl.blinmen.ru/wp-json/tjfl/v1/projects/";
url = new URL(get_order);
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 (IOException e){
e.printStackTrace();
} finally {
if (urlConnection != null){
urlConnection.disconnect();
}
}
} catch (Exception e) {
e.printStackTrace();
}
return current;
}
@Override
protected void onPostExecute(String s) {
try {
JSONArray jsonArray = new JSONArray(s);
for (int i = 0; i < jsonArray.length(); i++){
JSONObject jsonObject = jsonArray.getJSONObject(i);
OrdersModelClass model = new OrdersModelClass();
model.setTitle_order_adapter(jsonObject.getString("title"));
model.setBudget_order_adapter(jsonObject.getString("budget"));
model.setDeadline_order_adapter(jsonObject.getString("deadline"));
orderList.add(model);
}
} catch (JSONException e) {
e.printStackTrace();
}
PutDataIntoRecyclerView(orderList);
}
}
private void PutDataIntoRecyclerView(List<OrdersModelClass> orderList){
AdapterJSON orderAdapter = new AdapterJSON(getContext(), orderList);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
recyclerView.setAdapter(orderAdapter);
}
}
My adapter, I need to know how to write code on click, here
package com.example.myapplication.adapters;
public class AdapterJSON extends RecyclerView.Adapter<AdapterJSON.MyViewHolder> {
private RecyclerView recyclerViewItemClickListener;
private final Context mContext;
private final List<OrdersModelClass> mData;
public AdapterJSON(Context mContext, List<OrdersModelClass> mData) {
this.mContext = mContext;
this.mData = mData;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(mContext);
View view = inflater.inflate(R.layout.my_row_orders_, parent, false);
return new MyViewHolder(view);
}
@SuppressLint("SetTextI18n")
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
final OrdersModelClass orderModel = mData.get(position);
holder.title.setText(orderModel.getTitle_order_adapter());
holder.budget.setText(orderModel.getBudget_order_adapter());
holder.deadline.setText(orderModel.getDeadline_order_adapter());
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String id = String.valueOf(orderModel.getId());
}
});
}
@Override
public int getItemCount() {
return mData.size();
}
public class MyViewHolder extends RecyclerView.ViewHolder {
TextView title, budget, deadline;
ConstraintLayout mainLayout;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
title = itemView.findViewById(R.id.title_order);
budget = itemView.findViewById(R.id.budget_order);
deadline = itemView.findViewById(R.id.deadline_order);
mainLayout = itemView.findViewById(R.id.mainLayout_order);
}
}
}
GET request which i get
[
{
"id": 151,
"status": "close",
"title": "New test project",
"deadline": "31/05/2022",
"budget": "1000"
}
]
GET request which I should take by id
{
"id": 151,
"title": "New test project",
"status": "closed",
"deadline": "31/05/2022",
"budget": "1000",
"reserved_budget": "100",
"customer": "Tajsoft",
"description": "123456789012345678901234567890",
"tags": [
"Full stack",
"Web"
]
}
Ultimately, I need a code that will take the id of the order and, for this id, make a GET request to get the details of the order, please help me how to take the id into a variable
Set a listener for in your adapter:
In onClick:
In your fragment: