У меня проблема с показом listView с настраиваемым адаптером в моем фрагменте, этот код работает в действии, но не в моем фрагменте, когда я запускаю свой код, не отображается никаких ошибок.Опять же, этот код работает в действии, правильно показывает listView с помощью адаптера и показывает Toast для всех данных, полученных из JsonObjectRequest, но во Fragment не только отображают listView, но и показывают Toast правильно.Я установил цвет фона фрагмента на красный, но это показывает белый экран и тост. (Извините за мой плохой английский).
public class ComplaintsFragment extends Fragment {
ListView lstCategories;
private RequestQueue queue;
private String url="http://192.168.1.3:8000/api/tipos";
private ArrayAdapter<CategoriaModel> categoriaAdapter;
List<CategoriaModel> categories;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup
container,@Nullable Bundle savedInstanceState) {
final View view= inflater.inflate(R.layout.fragment_complaints,
container, false);
queue=Volley.newRequestQueue(view.getContext());
categories=new ArrayList<>();
Toast.makeText(view.getContext(), "Hello you're Fragment",
Toast.LENGTH_SHORT).show();
lstCategories=(ListView) view.findViewById(R.id.lstCategories);
JsonObjectRequest jsonObjectRequest = new
JsonObjectRequest(Request.Method.GET, url, null, new
Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONArray jsonArray = response.getJSONArray("data");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
int idcategory=jsonObject.getInt("idcategory");
String name = jsonObject.getString("name");
String details= jsonObject.getString("details");
CategoriaModel category=new
CategoriaModel(idcategory,name,details);
Toast.makeText(view.getContext(),
category.toString(), Toast.LENGTH_SHORT).show();
categories.add(category);
}
categoriaAdapter=new
CategoriaAdapter(getActivity(),
android.R.layout.simple_list_item_1,categories);
lstCategories.setAdapter(categoriaAdapter);
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
queue.add(jsonObjectRequest);
return view;
}
}
Это мой адаптер для listView
public class CategoriaAdapter extends ArrayAdapter<CategoriaModel> {
public CategoriaAdapter(@NonNull Context context, int resource, @NonNull List<CategoriaModel> objects) {
super(context, resource, objects);
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
CategoriaModel objItem=getItem(position);
LayoutInflater inflater= (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View contenedor=inflater.inflate(R.layout.item_category,parent,false);
TextView lblNombre=contenedor.findViewById(R.id.lblNombre);
TextView lblDescripcion=contenedor.findViewById(R.id.lblDescripcion);
lblNombre.setText(objItem.getNombre());
lblDescripcion.setText(objItem.getDescripcion());
return contenedor;
}
}