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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Т_Ё_М_А
23 / 6 / 2
Регистрация: 14.12.2009
Сообщений: 282
21.11.2013, 22:11     ListView не работает выбор элемента #1
Доброго времени суток. Который день мучаюсь. Не знаю как поменять цвет 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
 Аватар для 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
1157 / 981 / 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
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
22.11.2013, 21:48     ListView не работает выбор элемента #6
ну так попробуйте как мы пишем.
dubok79
 Аватар для 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
 Аватар для 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
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
24.11.2013, 02:48     ListView не работает выбор элемента #11
а мои варианты не катят или вы не поняли что нужно делать?
Yandex
Объявления
24.11.2013, 02:48     ListView не работает выбор элемента
Ответ Создать тему
Опции темы

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