Generte ID ресурса во время выполнения? - PullRequest
0 голосов
/ 30 октября 2010

Я пишу пользовательское предпочтение с помощью панели поиска, пока она работает, за исключением одной проблемы, идентификатор моей панели поиска определен в XML, поэтому, когда я пытаюсь использовать 2 моих пользовательских предпочтения, а затем обновляюПанель поиска Я не могу различить два.

SeekBar bar = (SeekBar)view.findViewById(R.id.PreferenceSeekBar);

Есть ли способ генерировать пользовательский идентификатор ресурса во время выполнения?Или, возможно, другой способ решить эту проблему?

Спасибо, Джейсон

Ответы [ 2 ]

1 голос
/ 25 апреля 2012

Для будущих пользователей:

Пометьте свое представление с помощью setTag () и сослаться на него с помощью findViewWithTag ();

source: Inflate a TableRow

1 голос
/ 30 октября 2010

в методе пользовательских настроек onBind ovverriden вам передается представление View, которое содержит все представления текущего действия предпочтения.

На Preference нет метода onBind(). Там есть onBindView() метод. Тем не менее, View, переданный onBindView(), равен View, который вы вернули из onCreateView(), или View, раздутому из указанного файла макета, если вы пошли по этому маршруту. Это не вся деятельность.

Убедитесь, что вы вызываете findViewById() для виджета, который был создан для вашего Preference, а не для чего-то с более широкой областью действия.

Также имейте в виду, что PreferenceActivity - это ListActivity. Если ваш пользовательский Preference прокручивается за пределы экрана, его View может быть передан другому экземпляру вашего пользовательского Preference для переработки.

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