Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.73
torooty
0 / 0 / 0
Регистрация: 22.05.2012
Сообщений: 17
#1

Обработчик нажатий - Программирование Android

04.03.2013, 12:21. Просмотров 1938. Ответов 22
Метки нет (Все метки)

Всем доброго времени суток.
Я новичок в программировании и буду очень признателен в помощи.
Вопрос такой: мне нужно в обработчике по нажатию на какой либо элемент из списка присвоить переменной имя (string name) этого элемента. То есть <string name="home">Дом</string> в переменную запишется не Дом, а home.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2013, 12:21     Обработчик нажатий
Посмотрите здесь:

Несколько нажатий - Программирование Android
Подскажите пожалуйста как сделать так, что бы можно было нажимать на ОДНУ кнопку несколько раз и она например меняла бы звук нажал первый...

Обработка нажатий - Программирование Android
Господа подскажите как определить что пользователь провел пальцем влево или в право? Отслеживать в onTouch координаты? Если Х...

Обработка нажатий на виджет - Программирование Android
Почему не работает при нажатии на виджет? @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int...

Кнопка со счётчиком нажатий - Программирование Android
Добрый день смотрел в интернете но ни нашел примера. Что для этого нужно? Или какие темы можно посмотреть? Думал что натыкал к примеру...

Fragment обработка нажатий - Программирование Android
Здравствуйте. Есть 9 Layout-ов. Каждый выступает в роли контейнера для фрагментов. Вопрос в следующем. Не могу сделать обработку нажатий на...

Sliding Menu обработка нажатий - Программирование Android
Кто нибудь использовал данную библиотеку? menu = new SlidingMenu(this); menu.setMode(SlidingMenu.LEFT); ...

Изменять изображение в зависимости от количества нажатий - Программирование Android
Всем привет , помогите нубу) Как сделать чтобы , кликая на кнопку, допустим 100 раз появилось изображение ,200 раз другое public class...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
04.03.2013, 13:13     Обработчик нажатий #2
Цитата Сообщение от torooty Посмотреть сообщение
Вопрос такой: мне нужно в обработчике по нажатию на какой либо элемент из списка
list.setOnItemClickListener(onItemClickListener);

Добавлено через 2 минуты
Цитата Сообщение от torooty Посмотреть сообщение
То есть <string name="home">Дом</string> в переменную запишется не Дом, а home.
не представляю для чего это вам...

Добавлено через 1 минуту
getResources().getResourceName(R.string.home);
torooty
0 / 0 / 0
Регистрация: 22.05.2012
Сообщений: 17
04.03.2013, 13:21  [ТС]     Обработчик нажатий #3
спасибо за ответ. но не совсем то что нужно. Сейчас код такой
final ArrayAdapter<String> ad = new ArrayAdapter(this,android.R.layout.simple_list_item_1, lv_arr);
lv1.setAdapter(ad);
lv1.setTextFilterEnabled(true);

lv1.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> a, View v, int id, long position) {

String itemname = ad.getItem(id);

а мне нужно чтобы в itemname записывалось string name при выборе элемента в списке.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
04.03.2013, 13:30     Обработчик нажатий #4
и в чем проблема?
torooty
0 / 0 / 0
Регистрация: 22.05.2012
Сообщений: 17
04.03.2013, 13:36  [ТС]     Обработчик нажатий #5
ну сейчас в переменную (если брать пример из моего первого сообщения ) записывается не home , а Дом.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
04.03.2013, 14:04     Обработчик нажатий #6
getResources().getResourceName(resId);
torooty
0 / 0 / 0
Регистрация: 22.05.2012
Сообщений: 17
04.03.2013, 14:46  [ТС]     Обработчик нажатий #7
я правильно понимаю ????
lv1.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> a, View v, int position, long id) {


String itemname = getResources().getResourceName(resId);


Подчеркивает resId.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
04.03.2013, 14:55     Обработчик нажатий #8
вместо resId должен быть id нужной стринги.
torooty
0 / 0 / 0
Регистрация: 22.05.2012
Сообщений: 17
04.03.2013, 15:11  [ТС]     Обработчик нажатий #9
Спасибо за ответы, но я еще раз уточню,

lv1.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> a, View v, int position, long id) {


String itemname = getResources().getResourceName( сюда ставлю согласно моему коду - position ??? );
начинаю проверять, ругается на эту строчку и приложение вылетает.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
04.03.2013, 15:20     Обработчик нажатий #10
не position а id стринги.
torooty
0 / 0 / 0
Регистрация: 22.05.2012
Сообщений: 17
04.03.2013, 15:53  [ТС]     Обработчик нажатий #11
я понимаю так , нажимаю на элемент в списке, переменной в этот момент присваивается имя стринги этого элемента, и что мне в итоге в скобках писать getResources().getResourceName(?), определенный номер ??? как узнать id стринги ???

Добавлено через 17 минут
вообщем мне стало понятно что вы имели ввиду, а вот чтобы не нужно было жестко прописывать id стринги , я же не знаю какой элемент будет выбран.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
04.03.2013, 16:52     Обработчик нажатий #12
как вы наполняете lv_arr? приведите код.
torooty
0 / 0 / 0
Регистрация: 22.05.2012
Сообщений: 17
04.03.2013, 17:02  [ТС]     Обработчик нажатий #13
Java
1
2
3
4
5
6
7
8
9
10
 final String[] lv_arr =    getResources().getStringArray(R.array.list_array);
lv1 = (ListView)findViewById(R.id.lister);
lv1.setAdapter( new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1 , lv_arr));
lv1.setTextFilterEnabled(true);
lv1.setOnItemClickListener(new OnItemClickListener() 
    {
        public void onItemClick(AdapterView<?> a, View v, int position, long id) 
        {
           
            String itemname =
strings.xml

<string name="name1">Кот</string>
<string name="name2">Собака</string>
<string name="name3">Рыба</string>
<string name="name4">Птица</string>


<string-array name="list_array">
<item>@string/name1</item>
<item>@string/name2</item>
<item>@string/name3</item>
<item>@string/name4</item>
</string-array>
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
04.03.2013, 17:15     Обработчик нажатий #14
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
<string-array name="list_array">
<item>Кот</item>
<item>Собака</item>
<item>Рыба</item>
<item>Птица</item>
</string-array>
 
<string-array name="list_array2">
<item>name1</item>
<item>name2</item>
<item>name3</item>
<item>name4</item>
</string-array>
Java
1
2
3
4
5
6
String[] lv_arr2 =    getResources().getStringArray(R.array.list_array2);
...
public void onItemClick(AdapterView<?> a, View v, int position, long id){
         String itemname = lv_arr2[position];
    }
...
как вариант.
знал бы для чего это вам, может смог бы предложить более подходящее решение.
torooty
0 / 0 / 0
Регистрация: 22.05.2012
Сообщений: 17
04.03.2013, 17:26  [ТС]     Обработчик нажатий #15
Спасибо большое за решение проблемы и потраченное время!!!!!! Выручили !!!!!!!!!!!!!!!!!!!!
obrazer
70 / 70 / 1
Регистрация: 04.09.2012
Сообщений: 170
04.03.2013, 17:53     Обработчик нажатий #16
. Ошибся
torooty
0 / 0 / 0
Регистрация: 22.05.2012
Сообщений: 17
05.03.2013, 11:22  [ТС]     Обработчик нажатий #17
при таком массиве список заполняется не кот, собака , рыба, а name1, name2 ....
XML
1
2
3
4
5
6
 <string-array name="list_array2">
<item>name1</item>
<item>name2</item>
<item>name3</item>
<item>name4</item>
</string-array>
а нужно

XML
1
2
3
4
5
6
<string-array name="list_array">
<item>@string/name1</item>
<item>@string/name2</item>
<item>@string/name3</item>
<item>@string/name4</item>
</string-array>
все равно не так работает ((
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
05.03.2013, 13:15     Обработчик нажатий #18
ну правильно, один масив заполняете кот, собака , рыба... а второй name1, name2 .... первый отображаете в списке, второй используете здесь - String itemname = lv_arr2[position];
torooty
0 / 0 / 0
Регистрация: 22.05.2012
Сообщений: 17
05.03.2013, 14:06  [ТС]     Обработчик нажатий #19
спасибо!!! буду проверять!!!!

Добавлено через 22 минуты
но вот вопрос, если элементы в списке будут менятся местами, скажем будет поиск по списку , и на первой позиции будет находится пятый элемент, то имена второго массива уже не будут соотвествовать элементам первого массива???
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.03.2013, 16:42     Обработчик нажатий
Еще ссылки по теме:

Обработка нажатий клавиш программной клавиатуры - Программирование Android
Не знаю, была ли эта тема. Но столкнулся с такой проблемой: допустим есть макет с EditText и ListView. Они отображаются сверху вниз в...

Обработка нажатий внутри класса адаптера - Программирование Android
Можно ли обрабатывать нажатия в классе адаптера expandablelistview? Если нет, то что будет если я поставлю там обработчики?

Обработка нажатий на сам фрагмент а не на отдельную кнопку - Программирование Android
Как повесить обработку нажатий на весь фрагмент а не на отдельное View внутри фрагмента? Добавлено через 2 минуты Есть 2 фрагмента...

Обработка нажатий кнопок созданных программно в заданном месте разметки - Программирование Android
Здравствуйте, собственно проблема: как сделать кнопки в андроид(не простые через button@id а золотые), кнопки округлой формы, желательно с...

Обработка нажатий клавиш громкости непосредственно Service (Activity уже закрыто) - Программирование Android
Уважаемые форумчане! Буду благодарен за любую помощь. Написал добрую часть приложения для Android, состоящего из Активности и...


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

Или воспользуйтесь поиском по форуму:
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
05.03.2013, 16:42     Обработчик нажатий #20
да, нужно менять синхронно.

скажите зачем вам это и может я придумаю вариант получше.
Yandex
Объявления
05.03.2013, 16:42     Обработчик нажатий
Ответ Создать тему
Опции темы

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