Listview c - управление списками в Си
ListView - это виджет пользовательского интерфейса в Android, который отображает список объектов в виде прокручиваемой таблицы. Он может быть использован как для статических, так и для динамических списков. В динамических списках данные могут быть загружены из внешних источников, таких как базы данных, сетевые серверы или веб-службы.
Пример создания ListView находится в xml-разметке активности. После настройки ListView, мы устанавливаем адаптер для него, чтобы обеспечить данные и настройки внешнего вида:
Далее в активности создаем адаптер, реализуем методы для работы с данными, например, getCount() для получения количества элементов в списке, getItem() для получения объекта данных из списка, getView() для создания элементов списка и заполнения их данными:
public class MyAdapter extends BaseAdapter {
private List mData;
public MyAdapter(List data) {
mData = data;
}
@Override
public int getCount() {
return mData.size();
}
@Override
public Object getItem(int position) {
return mData.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View itemView = convertView;
if (itemView == null) {
itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.my_item_layout, parent, false);
}
MyObject data = mData.get(position);
TextView titleTextView = itemView.findViewById(R.id.title_textview);
titleTextView.setText(data.getTitle());
TextView descriptionTextView = itemView.findViewById(R.id.description_textview);
descriptionTextView.setText(data.getDescription());
return itemView;
}
}
Затем связываем ListView с адаптером в активности и устанавливаем слушатель кликов:
public class MyActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
ListView myListView = findViewById(R.id.my_listview);
List data = loadDataFromExternalSource();
MyAdapter adapter = new MyAdapter(data);
myListView.setAdapter(adapter);
myListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView> parent, View view, int position, long id) {
MyObject data = (MyObject) parent.getItemAtPosition(position);
// do something with data
}
});
}
}
В результате мы получим работающий список ListView с данными, прокручиваемый пользователем. Вся конфигурация внешнего вида элементов списка контролируется адаптером, где мы можем настроить внешний вид их элементов и заполнение данными в соответствии с нашими потребностями.