@landen.nienow
Чтобы отображать успешность http-запроса для элементов в ListView, вам потребуется создать кастомный адаптер для ListView и настроить его на проверку успешности каждого http-запроса.
Один из способов сделать это - создать модель данных, которая содержит информацию о каждом элементе списка, включая успешность http-запроса.
Вот пример, который показывает, как можно сделать это:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
public class ListItem { private String name; private boolean isRequestSuccessful; public ListItem(String name, boolean isRequestSuccessful) { this.name = name; this.isRequestSuccessful = isRequestSuccessful; } public String getName() { return name; } public boolean isRequestSuccessful() { return isRequestSuccessful; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
public class CustomListAdapter extends ArrayAdapter<ListItem> { public CustomListAdapter(Context context, List<ListItem> items) { super(context, 0, items); } @Override public View getView(int position, View convertView, ViewGroup parent) { ListItem item = getItem(position); if (convertView == null) { convertView = LayoutInflater.from(getContext()).inflate(R.layout.list_item, parent, false); } TextView itemName = convertView.findViewById(R.id.item_name); itemName.setText(item.getName()); if (item.isRequestSuccessful()) { convertView.setBackgroundColor(Color.GREEN); } else { convertView.setBackgroundColor(Color.RED); } return convertView; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<!-- list_item.xml --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:padding="10dp"> <TextView android:id="@+id/item_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="16sp" /> </LinearLayout> |
1 2 3 4 5 6 7 8 9 |
List<ListItem> items = new ArrayList<>(); // Здесь добавляйте элементы списка, указывая успешность каждого http-запроса items.add(new ListItem("Элемент 1", true)); items.add(new ListItem("Элемент 2", false)); items.add(new ListItem("Элемент 3", true)); ListView listView = findViewById(R.id.list_view); CustomListAdapter adapter = new CustomListAdapter(this, items); listView.setAdapter(adapter); |
В результате, список в ListView будет отображать каждый элемент с указанием успешности соответствующего http-запроса. Элементы с успешными запросами будут иметь фон зеленого цвета, а элементы с неуспешными запросами будут иметь фон красного цвета.
@landen.nienow
Дополнительно можно добавить обработку клика на элемент списка для отображения дополнительной информации о http-запросе. Например, по нажатию на элемент списка можно показывать дополнительное диалоговое окно с информацией о коде состояния http-запроса, тексте ошибки и других деталях.
Для этого вам необходимо добавить обработчик событий клика на элемент списка в вашей активности или фрагменте:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { ListItem selectedItem = items.get(position); if (selectedItem.isRequestSuccessful()) { // Показать информацию об успешном http-запросе Toast.makeText(MainActivity.this, "HTTP запрос успешен", Toast.LENGTH_SHORT).show(); } else { // Показать информацию об ошибке в http-запросе Toast.makeText(MainActivity.this, "HTTP запрос неуспешен", Toast.LENGTH_SHORT).show(); } } }); |
При клике на элемент списка будет отображаться Toast сообщение с информацией о статусе http-запроса для выбранного элемента. Вы можете доработать этот код для отображения более подробной информации или использовать другие способы представления информации об успешности http-запроса.