@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-запроса.