Представление списка генерирует дубликаты данных и как подключаться к устройствам при щелчке из представления списка

У меня проблема с listviews, где всякий раз, когда я ищу устройство Bluetooth, он будет отображать список доступных устройств, как обычно, но при втором щелчке он будет генерировать дубликаты, поскольку результаты первого сканирования все еще остаются, так как мне избавиться от первое сканирование выполняется каждый раз, когда пользователь нажимает кнопку сканирования, и подключается к устройству Bluetooth, когда конечный пользователь нажимает адрес или имя устройств.

MainActivity.cs

public class BTReceiver : BroadcastReceiver
    {

        public override void OnReceive(Context context, Intent intent)
        {
            var application = context.ApplicationContext;
            string action = intent.Action;
            if (action == BluetoothDevice.ActionFound)
            {
                BluetoothDevice device = intent.GetParcelableExtra(BluetoothDevice.ExtraDevice) as BluetoothDevice;
                devices.Add(new Devices(device.Name, device.Address));

                Devices item = list.First(d => d.name == device.Name);

                //if devices does not exist in the list, add it in
                if (item != null)
                {
                    return;
                }


                aadapter = new CustomAdapter(_instance, devices);
                availableList.Adapter = aadapter;
                aadapter.NotifyDataSetChanged();

                Toast toast = Toast.MakeText(Android.App.Application.Context, device.Name, ToastLength.Long);
                toast.Show();
            }
        }
    }

Device.cs

public class Devices
{
    string _name;
    string _address;

    public string Name { get { return _name; } set { _name = value; } }
    public string Address { get { return _address; } set { _address = value; } }

    public Devices(string name, string address)
    {
        Name = name;
        Address = address;
    }
}

BTDevice.cs он же Пользовательский адаптер, который я создал

public class CustomAdapter : BaseAdapter<Devices>
{
    private ObservableCollection<Devices> _devices;
    private Activity _context;

    public CustomAdapter(Activity context, ObservableCollection<Devices> devices) : base()
    {
        _context = context;
        _devices = devices;
    }

    public override long GetItemId(int position)
    {
        return position;
    }

    public override View GetView(int position, View convertView, ViewGroup parent)
    {
        var device = _devices[position];

        View view = convertView;
        if (view == null)
            view = ((Activity)_context).LayoutInflater.Inflate(Resource.Layout.listView, null);

        view.FindViewById<TextView>(Resource.Id.textName).Text = device.Name;
        view.FindViewById<TextView>(Resource.Id.textAddress).Text = device.Address;

        return view;
    }

    public override int Count
    {
        get { return _devices.Count; }
    }

    public override Devices this[int position]
    {
        get { return _devices[position]; }
    }
}
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
140
1

Ответы 1

Вы должны очистить устройства, прежде чем добавлять на них новые вещи. Что-то вроде ..

clear(devices)
devices.add(newdevice)

сейчас у меня ошибка со списком, ты хоть представляешь?

Marko233 14.03.2018 07:22

Имя 'list' не существует в текущем контексте, я не уверен, какой список мне использовать, потому что для каждого из них есть ошибка

Marko233 14.03.2018 07:35

Это просто код sudo. если у вас есть определенный список, и если вы продолжаете добавлять в него элементы, не заменяя и не очищая его, у вас будут дублированные элементы.

user456 14.03.2018 07:49

вы продолжаете добавлять устройство в список "устройств"

Mathias Kirkegaard 14.03.2018 09:54

Хорошо, я исправил ошибки, теперь это приводит ко второму вопросу: как мне подключиться к нему, когда я щелкнул имя или адрес устройства

Marko233 15.03.2018 02:37

Другие вопросы по теме