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

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

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

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

21.11.2013, 22:11. Просмотров 1146. Ответов 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); -цвет меняется, но выбор тоже перестаёт работать. Цвет через ресурсы - тоже не помогло.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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 не работает выбор элемента
Еще ссылки по теме:

Android Скрытие элемента ListView
ListView ячейки, получить Id элемента из SQLite Android
Зафиксировать пзицию элемента в ListView Android
Android Переход с элемента listView на activity
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 не работает выбор элемента
Ответ Создать тему
Опции темы

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