Форум программистов, компьютерный форум, киберфорум
Наши страницы
Xamarin
Войти
Регистрация
Восстановить пароль
 
Людвиг Бодмер
357 / 356 / 211
Регистрация: 29.03.2013
Сообщений: 867
Завершенные тесты: 4
1

Привязка обработчика события к контролу из другого layout

02.02.2017, 09:11. Просмотров 456. Ответов 0
Метки нет (Все метки)

Здравствуйте. В проекте Visual C# Android имеется стандартная структура проекта с файлом MainActivity.cs и двумя layout: Main и добавленным layout1.
В MainActivity.cs устанавливаю layout и подключаю обработчики таким образом:
C#
1
2
3
4
5
6
7
8
protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.Main);
 
            Button btn = FindViewById<Button>(Resource.Id.button1);
            btn.Click += btn_Click;
        }
А теперь хочу подключить обработчики к контролам из layout1, тут же в OnCreate пробую так:
C#
1
2
3
4
5
6
            ViewGroup linearlayout1 = FindViewById<ViewGroup>(Resource.Id.linearlayout1);
            View rootInAnotherLayout = this.LayoutInflater.Inflate(
                                Resource.Layout.layout1, linearlayout1,false);
 
            Switch switchComp1 = rootInAnotherLayout.FindViewById<Switch>(Resource.Id.switchComp1);
            switchComp1.Click += switchComp_Click;
И вроде под отладчиком видно, что switchComp1 корректно находится.
Но в обработчик switchComp_Click код не приходит под отладчиком и не выполняется.
Код layout1.axml:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/linearlayout1"
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="match_parent">
    <GridLayout>
        ...
            <Switch
                android:id="@+id/switchComp1"
                android:text="Компьютер"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textOff="Off"
                android:textOn="On" 
                />
            <Switch
          ...
    </GridLayout>
</LinearLayout>
Может можно напрямую в xaml это сделать? Но тупо android:onClick="switchComp_Click" не прокатывает, вылетает Exception.
В андроид-разработке пока не шарю, может тут что-то простое. Может можно повесить обработчик на контрол из неосновного layout каким-то другим способом? Подскажите пожалуйста.

Добавлено через 16 часов 0 минут
Декларативно получилось привязать обработчик с помощью [Java.Interop.Export("switchComp_Click")]
Теперь отрабатывает как надо.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.02.2017, 09:11
Ответы с готовыми решениями:

Привязка события к пользовательскому контролу
На пользовательском контроле размещены пару label и picturebox. Необходимо при...

Привязка обработчика из другого класса
Доброго вечера, форумчане! Есть такая проблемка: в моём проекте есть несколько...

Вызвать обработчик события внутри другого обработчика
У окна есть обработчик Loaded=&quot;Window_Loaded&quot;, который мониторит состояние...

Доступ к контролу на форме из обработчика
на форму кинул две кнопки и один эдит, как мне из обработчика кнопки получить...

Вызов обработчика кнопки из другого обработчика.
Есть кнопка, есть у ней обработчик, который делает нечто полезное. Как вызвать...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.02.2017, 09:11

Привязка данных к wpf контролу
Допустим у меня есть TextBlock, в котором я хочу видеть значение из...

Динамическая привязка анимации к контролу
Приложение на silverlight. Есть код, который считывает данные из файла, в...

Создание объекта-события и обработчика события
Допустим у меня есть следующий класс: public class Example { private...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru