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

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

Войти
Регистрация
Восстановить пароль
 
edogaafx
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 42
#1

В ListView не работает OnItemClickListener - Программирование Android

16.04.2015, 19:05. Просмотров 1097. Ответов 2
Метки нет (Все метки)

Здравствуйте,
Впервые попался на такую проблему, что в ListView не работает OnItemClickListener.
При клике на элемент списка, в будущем должен будет проводиться переход на фрагмент, где будет выведена доп. информация, но это в будущем, так как я застрял в самом начале.
В методе я просто стараюсь в логах вывести, как метод выполняется и Toast с позицией, на которую сделан клик.
Вот примеры кода.
Часть фрагмента, который работает со списком
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setHasOptionsMenu(true);
    }
 
@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        Log.i(TAG, "onCreateView");
        View view = inflater.inflate(R.layout.fragment_event_list, container, false);
        
        //swipeRefreshLayout = (SwipeRefreshLayout)view.findViewById(R.id.swiperefresh);
        
        listView = (ListView)view.findViewById(android.R.id.list);
        
        listView.setClickable(true);
        listView.setItemsCanFocus(true);
        
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
 
            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                Log.i(TAG, "onItemClick");
                Toast.makeText(context, position,
                        Toast.LENGTH_SHORT).show();
            }
        });
                
        return view; 
    }
 
@Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        Log.i(TAG, "onViewCreated");
        
        dbHelper = new DatabaseHelper(getActivity());
        try {
            dbHelper.open();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        list = dbHelper.getEvents();
        eventAdapter = new EventAdapter(list);
        setListAdapter(eventAdapter);
        
        dbHelper.close();
 
}
 
public class EventAdapter extends ArrayAdapter<Event> {
        
        public EventAdapter(ArrayList<Event> e) {
            super(getActivity(), android.R.layout.simple_list_item_1, e);
        }
        
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            Log.i(TAG, "getView");
            if(convertView == null) {
                convertView = getActivity().getLayoutInflater().inflate(R.layout.event_list_item, null);
            }
            Event event = getItem(position);
            //System.out.println("Event object in getView() " + event);
            //System.out.println("Event name: " + event.getName());
            //eventImageView = (ImageView)view.findViewById(R.id.event_list_image);
            eventNameTextView = (TextView)convertView.findViewById(R.id.event_list_name);
            eventNameTextView.setText(event.getName());
            eventNameTextView.setFocusable(false);
            eventStartDateTextView = (TextView)convertView.findViewById(R.id.event_list_date);
            eventStartDateTextView.setText(event.getStartDate()); 
            eventStartDateTextView.setFocusable(false);
            
            return convertView;
        }
        
    }
Пробовал "оживить" клики по списку с помощью всяких рекомендации, которыъ искал в гугле по данной проблеме
eventNameTextView.setFocusable(false);
listView.setClickable(true);
listView.setItemsCanFocus(true);

Ничего не помогает

Вот вьюшки.
Сам список:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!-- <android.support.v4.widget.SwipeRefreshLayout -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:descendantFocusability="blocksDescendants" >
    <ListView 
        android:id="@android:id/list"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:descendantFocusability="blocksDescendants"
         />
</RelativeLayout> 
 
<!-- </android.support.v4.widget.SwipeRefreshLayout> -->
И его элементы:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >
 
        <!-- <ImageView
            android:id="@+id/event_list_image"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:contentDescription="@string/app_name" /> -->
 
        <TextView
            android:id="@+id/event_list_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:focusableInTouchMode="false"
            android:clickable="false"
            android:focusable="false" />
 
        <TextView
            android:id="@+id/event_list_date"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:clickable="false"
            android:focusable="false"
            android:focusableInTouchMode="false" />
 
</LinearLayout>
android:focusableInTouchMode="false"
android:clickable="false"
android:focusable="false"

тоже использовал ищ рекомендаций, что гугл подскозал.
Как никак, всё без успехов.

Буду благодарен за помощь.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2015, 19:05     В ListView не работает OnItemClickListener
Посмотрите здесь:
Получить из ListView адаптера значение в OnItemClickListener Android
Android Не могу заставить OnItemClickListener, ловить нажатие на элемент списка ListView
Android OnItemClickListener
Android Получить id вместо position в OnItemClickListener
ListView не работает Android
Не работает анимация в строках ListView Android
Не работает метод ListView::setChoiceMode Android
ListView не работает выбор элемента Android
Изменил фон для Custom ListView не работает подсветка при нажатии Android
Дело в коде или глюк Студио? Один из пунктов ListView не работает Android
Android В listView работает int, но не работает int[]
Переход из Listview в Listview Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fgtmenow
75 / 75 / 7
Регистрация: 29.03.2012
Сообщений: 254
16.04.2015, 19:43     В ListView не работает OnItemClickListener #2
используй onListItemClick
edogaafx
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 42
16.04.2015, 21:23  [ТС]     В ListView не работает OnItemClickListener #3
Спасибо, вроде помогло.
Ответ Создать тему
Опции темы

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