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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Т_Ё_М_А
23 / 6 / 2
Регистрация: 14.12.2009
Сообщений: 282
#1

ListView не работает выбор элемента - Программирование Android

21.11.2013, 22:11. Просмотров 1175. Ответов 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.WHITE); -цвет меняется, но выбор тоже перестаёт работать. Цвет через ресурсы - тоже не помогло.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2013, 22:11     ListView не работает выбор элемента
Посмотрите здесь:

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

ListView множественный выбор несмотря на SingleChoice mode - Программирование Android
Здравствуйте! Столкнулся с проблемой: использую listview со своим Adapter-ом, наследуем от BaseAdapter-а, с переопределенными методами...

выделение элемента в ListView - Программирование Android
Подскажите, что я делаю не так? У меня в кастомном диалоге создается и заполняется список, при его отображении необходимо чтоб по умолчанию...

Замена элемента в ListView - Программирование Android
Доброго времени суток, форумчане! Столкнулся с проблемой есть ListView у которого все элементы это TextView, как запрограммировать чтобы...

Скрытие элемента ListView - Программирование Android
Заполняю своим адаптером, унаследованным от BaseAdapter. В качестве item использую свой класс который имеет поле isEnable - если оно равно...

Оформление элемента списка ListView - Программирование Android
Здравствуйте. Подскажите, как можно добиться результата, показанного на рисунке 1 (это в Paint подрисовано :) ) У меня сейчас выглядит...

Зафиксировать пзицию элемента в ListView - Программирование Android
Коллеги, нужен совет. Ситуация такая - Есть один ListView, элементом списка является WebView. Так вот, после иницализации адаптера нужно...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
21.11.2013, 23:18     ListView не работает выбор элемента #2
Цитата Сообщение от Т_Ё_М_А Посмотреть сообщение
Если просто в LineralLayout добавляю android:background="#FFFFFF" - цвет меняется, но выбор перестаёт работать
Он работает, просто его не видно. Допишите в ListView
android:drawSelectorOnTop="true"
Т_Ё_М_А
23 / 6 / 2
Регистрация: 14.12.2009
Сообщений: 282
22.11.2013, 21:35  [ТС]     ListView не работает выбор элемента #3
Цитата Сообщение от dubok79 Посмотреть сообщение
Он работает, просто его не видно. Допишите в ListView
android:drawSelectorOnTop="true"
У меня его нету...
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
22.11.2013, 21:42     ListView не работает выбор элемента #4
Цитата Сообщение от Т_Ё_М_А Посмотреть сообщение
У меня его нету...
вы попробовали дописать то, что dubok79 написал?
по идее нужно использовать State List если свой фон задаете или запихать все в дополнительный лаяут. лучше первое.
Т_Ё_М_А
23 / 6 / 2
Регистрация: 14.12.2009
Сообщений: 282
22.11.2013, 21:47  [ТС]     ListView не работает выбор элемента #5
Попробовал так - не пашет
Кликните здесь для просмотра всего текста
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>
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
22.11.2013, 21:48     ListView не работает выбор элемента #6
ну так попробуйте как мы пишем.
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
22.11.2013, 22:10     ListView не работает выбор элемента #7
Т_Ё_М_А, а почему в LinearLayout? Пишите в ListView
Т_Ё_М_А
23 / 6 / 2
Регистрация: 14.12.2009
Сообщений: 282
22.11.2013, 23:21  [ТС]     ListView не работает выбор элемента #8
добавил - не помогло
Кликните здесь для просмотра всего текста
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>
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
22.11.2013, 23:27     ListView не работает выбор элемента #9
Тогда кладите проект, посмотрим скажем что не так. У меня все работает.
Т_Ё_М_А
23 / 6 / 2
Регистрация: 14.12.2009
Сообщений: 282
23.11.2013, 22:46  [ТС]     ListView не работает выбор элемента #10
dubok79, отправил в личку

Добавлено через 22 часа 49 минут
попытки dubok79, не увенчались успехом(
Попробовал через lisetSelector, но тоже не заработало как надо(
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2013, 02:48     ListView не работает выбор элемента
Еще ссылки по теме:

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

Клик по айтему элемента ListView - Программирование Android
Добрый день товарищи. Есть необходимость отследить нажатие на элемент элемента ListView, извиняюсь за тавтологию. Вот пока лишь...

Переход с элемента listView на activity - Программирование Android
никак не возьму в толк, каким образом можно реализовать переход на новое activity с элемента listView, чтобы при нажатии на 1 строку...

ListView ячейки, получить Id элемента из SQLite - Программирование Android
есть база данных SQLITE. некоторые элементы БД выводятся в ListView через адаптер и вспомогательный XML. моя задача - в onItemClick перейти...

Сохранение position элемента ListView при поиске - Программирование Android
Если можно подробно описать и показать пример кода не посредственно показывающего сохранение позиции конкретного элемента ListView. т.к....


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

Или воспользуйтесь поиском по форуму:
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
24.11.2013, 02:48     ListView не работает выбор элемента #11
а мои варианты не катят или вы не поняли что нужно делать?
Yandex
Объявления
24.11.2013, 02:48     ListView не работает выбор элемента
Ответ Создать тему
Опции темы

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