Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
25 / 8 / 2
Регистрация: 14.12.2009
Сообщений: 281

ListView не работает выбор элемента

21.11.2013, 22:11. Показов 2815. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Который день мучаюсь. Не знаю как поменять цвет ListView, так что бы не сбить работу выбора элемента при нажатии. Прочитал уже много тем, и ничего не помогает... что я делаю не так?
activity
Кликните здесь для просмотра всего текста
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
public class TwoActivity extends ListActivity {
    
    //массив главных текстов списка
    String[] mSign = { "Тест","Язвенные болезни", "При остеохондрозе",
            "Слух", "Зрение", "Чувства", "Суставы",
            "Радикулиты"};
    //массив второстепенных текстов списка
    String[] mDate = { "тест работы энергии","и другие болезни желудочно-кишечного тракта",
            "боли в спине и пояснице, межпозвоночной грыже",
            "хронические заболевания ушей",
            "при заболевании глаз ( катаракта, глаукома)",
            "при исчезновении чувств вкуса и обоняния",
            "заболевания суставов - ревматоидный артрит",
            "хронические, с болевым синдромом"};
    //массив картинок списка
    Integer[] mImage = { R.drawable.energy, R.drawable.stomach,
            R.drawable.spine3, R.drawable.ear1, R.drawable.eye3,
            R.drawable.feelings1, R.drawable.bones, 
            R.drawable.spine4,
            };
    //объявляем адаптер
    myAdapter mAdapter;
 
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.main);
        
        mAdapter = new myAdapter(this);
        setListAdapter(mAdapter);
 
    }
    //прослушиватель выбора элементво списка
    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        //при нажатой строке №=position, вызываем новую страницу
        switch (position) {
        case 0:
            Intent intent = new Intent().setClass(this, Test1.class);
            startActivity(intent);
            break;
        case 1:
            intent = new Intent().setClass(this, MainListItem1.class);
            startActivity(intent);
            break;
        case 2:
            intent = new Intent().setClass(this, MainListItem2.class);
            startActivity(intent);
            break;
        case 3:
            intent = new Intent().setClass(this, MainListItem3.class);
            startActivity(intent);
            break;
        case 4:
            intent = new Intent().setClass(this, MainListItem4.class);
            startActivity(intent);
            break;
        case 5:
            intent = new Intent().setClass(this, MainListItem5.class);
            startActivity(intent);
            break;
        case 6:
            intent = new Intent().setClass(this, MainListItem6.class);
            startActivity(intent);
            break;
        case 7:
            intent = new Intent().setClass(this, MainListItem7.class);
            startActivity(intent);
            break;
        }
        
        //String selection = mAdapter.getString(position);
        //Toast.makeText(this, selection, Toast.LENGTH_LONG).show();
    }
        //передаём данные адаптеру для построения нашего списка
    public class myAdapter extends BaseAdapter {
        private LayoutInflater mLayoutInflater;
 
        public myAdapter(Context ctx) {
            mLayoutInflater = LayoutInflater.from(ctx);
        }
 
        public int getCount() {
            return mSign.length;
        }
 
        public Object getItem(int position) {
            return position;
        }
 
        public long getItemId(int position) {
            return position;
        }
 
        public String getString(int position) {
            return mSign[position] + " (" + mDate[position] + ")";
        }
 
        public View getView(int position, View convertView, ViewGroup parent) {
            
            if (convertView == null)
                convertView = mLayoutInflater.inflate(R.layout.list_item, null);
 
            ImageView image = (ImageView) convertView.findViewById(R.id.icon);
            image.setImageResource(mImage[position]);
 
            TextView sign = (TextView) convertView.findViewById(R.id.sign);
            sign.setText(mSign[position]);
 
            TextView date = (TextView) convertView.findViewById(R.id.date);
            date.setText(mDate[position]);
            
            return convertView;
        }
    } // end myAdapter}

xml file
Кликните здесь для просмотра всего текста
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
31
32
33
34
35
36
37
38
39
40
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="5dp" 
    >
 
    <ImageView
        android:id="@+id/icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#000000"
        android:padding="1dp"
         />
 
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:paddingLeft="15dp" >
 
        <TextView
            android:id="@+id/sign"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:fontFamily="Helvetica"
            android:textColor="#141414"
            android:textSize="18sp"
            android:textStyle="bold" />
 
        <TextView
            android:id="@+id/date"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="14sp"
            android:textStyle="italic" 
            android:textColor="#404040"/>
    </LinearLayout>
 
</LinearLayout>

Если просто в LineralLayout добавляю android:background="#FFFFFF" - цвет меняется, но выбор перестаёт работать
Если в адаптер добавляю convertView.setBackgroundColor(Color.WHI TE); -цвет меняется, но выбор тоже перестаёт работать. Цвет через ресурсы - тоже не помогло.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.11.2013, 22:11
Ответы с готовыми решениями:

ListView выбор элемента
Приветствую. Пишу файловый менеджер, но возникла проблемка. Когда устанавливаю автоматом выбор элементта ...

ListView выбор элемента
Есть handle ListView'a чужой программа, вопрос в том, как выбрать определенный элемент из него не прибегая к координатам, потому что...

Забиндить команду к ListView на выбор элемента
Хочу в соотвестии с патерном MVVM убрать обработку выбора элемента в свой ViewModel. Как должна выглядить такая команда, и как добавить ее...

10
 Аватар для dubok79
325 / 123 / 10
Регистрация: 01.11.2012
Сообщений: 587
21.11.2013, 23:18
Цитата Сообщение от Т_Ё_М_А Посмотреть сообщение
Если просто в LineralLayout добавляю android:background="#FFFFFF" - цвет меняется, но выбор перестаёт работать
Он работает, просто его не видно. Допишите в ListView
android:drawSelectorOnTop="true"
1
25 / 8 / 2
Регистрация: 14.12.2009
Сообщений: 281
22.11.2013, 21:35  [ТС]
Цитата Сообщение от dubok79 Посмотреть сообщение
Он работает, просто его не видно. Допишите в ListView
android:drawSelectorOnTop="true"
У меня его нету...
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
22.11.2013, 21:42
Цитата Сообщение от Т_Ё_М_А Посмотреть сообщение
У меня его нету...
вы попробовали дописать то, что dubok79 написал?
по идее нужно использовать State List если свой фон задаете или запихать все в дополнительный лаяут. лучше первое.
0
25 / 8 / 2
Регистрация: 14.12.2009
Сообщений: 281
22.11.2013, 21:47  [ТС]
Попробовал так - не пашет
Кликните здесь для просмотра всего текста
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
31
32
33
34
35
36
37
38
39
40
41
42
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="5dp" 
    android:background="#99cc00"
    android:drawSelectorOnTop="true">
 
    <ImageView
        android:id="@+id/icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#000000"
        android:padding="1dp"
         />
 
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:paddingLeft="15dp"
        android:drawSelectorOnTop="true" >
 
        <TextView
            android:id="@+id/sign"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:fontFamily="Helvetica"
            android:textColor="#141414"
            android:textSize="18sp"
            android:textStyle="bold" />
 
        <TextView
            android:id="@+id/date"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="14sp"
            android:textStyle="italic" 
            android:textColor="#404040"/>
    </LinearLayout>
 
</LinearLayout>
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
22.11.2013, 21:48
ну так попробуйте как мы пишем.
0
 Аватар для dubok79
325 / 123 / 10
Регистрация: 01.11.2012
Сообщений: 587
22.11.2013, 22:10
Т_Ё_М_А, а почему в LinearLayout? Пишите в ListView
0
25 / 8 / 2
Регистрация: 14.12.2009
Сообщений: 281
22.11.2013, 23:21  [ТС]
добавил - не помогло
Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:orientation="vertical"
  >
 
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView" />
 
    <ListView
        android:id="@+id/listView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
        android:drawSelectorOnTop="true"
        >
    </ListView>
 
</LinearLayout>
0
 Аватар для dubok79
325 / 123 / 10
Регистрация: 01.11.2012
Сообщений: 587
22.11.2013, 23:27
Тогда кладите проект, посмотрим скажем что не так. У меня все работает.
0
25 / 8 / 2
Регистрация: 14.12.2009
Сообщений: 281
23.11.2013, 22:46  [ТС]
dubok79, отправил в личку

Добавлено через 22 часа 49 минут
попытки dubok79, не увенчались успехом(
Попробовал через lisetSelector, но тоже не заработало как надо(
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
24.11.2013, 02:48
а мои варианты не катят или вы не поняли что нужно делать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.11.2013, 02:48
Помогаю со студенческими работами здесь

ListView. Выбор элемента при клике правой кнопкой мыши
Нужно, чтобы при клике правой кнопки мыши по элементу выбирался этот самый элемент TreeView. Как перевести на него фокус, я знаю. А как...

Выбор элемента по атрибуту data-number, код есть, не могу понять почему не работает как нужно!
Всем привет! Товарищи, помогите, столкнулся с проблемой. У меня есть map в котором лежат area, у которых уникальный атрибут data-number,...

Как осуществить прокрутку элемента управления в ListView до заданного элемента
Собственно вопрос в названии...Видел как это делают на VB если кто то может перевести с него могу предоставить...

Выбор элемента листбокса - вызывает картинку, соответствующую названию элемента листбокс
Всем доброго времени суток. проблема такая что при нажатии на элемент листбокса. должна отображаться картинка соответствующая названию...

Множественный выбор в listview
вот так создается список class AdapterHelper{ String name = {&quot;Первый&quot;,&quot;Второй&quot;,&quot;Третий&quot;}; int img =...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru