AutoCompleteTextView (Только исходный поток, создавший иерархию представлений, может касаться его представлений.) - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть AutoCompleteTextView внутри Activity или фрагмента, когда я щелкаю элемент в AutocompleteTextView, я получаю исключение, указанное в заголовке.

Я пытаюсь найти, где именно я бью исключение, но безуспешно. Последнее событие, которое я поражаю, - BeforeTextChanged из AutocompleteTextView. Я знаю, что мне нужно запустить некоторый код в потоке пользовательского интерфейса, но я не знаю точного.

Любой совет, как решить мою проблему. Заранее спасибо.

    public AutoCompleteTextView autoCompleteTextView;         

    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);

        SetContentView(Resource.Layout.fragment_camera2_basic);
        autoCompleteTextView = (AutoCompleteTextView)FindViewById(Resource.Id.autoCompleteTextView1));

        autoCompleteTextView.Threshold = 1;

        autoCompleteTextView.BeforeTextChanged += (sender, e) => {};
    }

1 Ответ

0 голосов
/ 05 апреля 2019

Только исходный поток, создавший иерархию представлений, может касаться его представлений.

Как предлагается в комментарии. Вы должны переместить часть фоновой задачи, которая обновляет пользовательский интерфейс, в основной поток. Для этого есть простой код:

RunOnUiThread(() => {
    //UI Thread Code 
});

Документация для Android.App.Activity.RunOnUiThread Method

Вам необходимо проверить, не смешаны ли фоновый поток и поток пользовательского интерфейса в коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...