powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / Android [игнор отключен] [закрыт для гостей] / Как раскрасить 1 элемент у ListView?
15 сообщений из 15, страница 1 из 1
Как раскрасить 1 элемент у ListView?
    #39030525
VaneS Ri_lax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, у меня есть ListView, в нем 3 элемента, как мне раскрасить второй элемент в списке нужным мне цветом?
Я делаю вот так:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
date = new Date();

        simpleDateFormat = new SimpleDateFormat("dd.MM.yyyy");

        String[] data = {
                simpleDateFormat.format(new Date(date.getTime()-86400000)),
                simpleDateFormat.format(date),
                simpleDateFormat.format(new Date(date.getTime()+86400000))
        };

        final ListView listView = (ListView)findViewById(R.id.listday);



        listView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, data));
 listView.getChildAt(1).setBackgroundColor(Color.parseColor("#ff1dcc4c"));


Но у меня вываливается ошибка:
Код: 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.
08-17 01:29:41.263  18121-18121/ru.domen.myapplication E/AndroidRuntime&#65109; FATAL EXCEPTION: main
    Process: ru.domen.myapplication, PID: 18121
    java.lang.RuntimeException: Unable to start activity ComponentInfo{ru.domen.myapplication/ru.domen.myapplication.Setting_dialog}: java.lang.NullPointerException
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
            at android.app.ActivityThread.access$800(ActivityThread.java:135)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5001)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NullPointerException
            at ru.domen.myapplication.Setting_dialog.onCreate(Setting_dialog.java:128)
            at android.app.Activity.performCreate(Activity.java:5231)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
            at android.app.ActivityThread.access$800(ActivityThread.java:135)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5001)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
            at dalvik.system.NativeStart.main(Native Method)


Заранее большое спасибо!
...
Рейтинг: 0 / 0
Как раскрасить 1 элемент у ListView?
    #39030537
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VaneS Ri_laxу меня есть ListView, в нем 3 элемента
Можно сделать так http://startandroid.ru/ru/uroki/vse-uroki-spiskom/81-urok-41-ispolzuem-layoutinflater-dlja-sozdanija-spiska.html но лучше сделать свой адаптер и в нем делать со строками списка что угодно.
...
Рейтинг: 0 / 0
Как раскрасить 1 элемент у ListView?
    #39030550
VaneS Ri_lax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может не так объяснил, но вот что мне нужно, в общем у меня есть в активити ListView
Вот его xml:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 <ListView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/listday"
        android:layout_below="@+id/textView12"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:background="?android:attr/activatedBackgroundIndicator"
        android:listSelector="@color/item_setting_color"

        />


Как видно, я установил цвет селектора android:listSelector="@color/item_setting_color"
То есть если по списку кликнуть, то его фон будет иметь этот цвет.
Но как мне сделать так чтобы 1 нужный мне элемент списка уже был выделен этим цветом? Как мне выделить его программно?
...
Рейтинг: 0 / 0
Как раскрасить 1 элемент у ListView?
    #39030555
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как раскрасить 1 элемент у ListView?
    #39030581
VaneS Ri_lax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman,

Почти, я знаю как задавать параметры цвета текста и самого фона у элемента при нажатии, я не понимаю как мне программно при создании списка выделить нужный мне элемент, а вот если человек нажмет на другой элемент в списке, то выделение перейдет на тот элемент по которому нажал человек
...
Рейтинг: 0 / 0
Как раскрасить 1 элемент у ListView?
    #39030587
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VaneS Ri_laxя не понимаю как мне программно при создании списка выделить нужный мне элемент
То есть не читал, но осуждаешь?

авторThen select programmatically your item with :
Код: java
1.
Mylistview.setItemChecked(position, true);

(position being an integer indicating the rank of the item to select)
...
Рейтинг: 0 / 0
Как раскрасить 1 элемент у ListView?
    #39030592
VaneS Ri_lax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman,

Делал так, но он почему то ничего не выделяет...
...
Рейтинг: 0 / 0
Как раскрасить 1 элемент у ListView?
    #39030596
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VaneS Ri_laxДелал так, но он почему то ничего не выделяет...
Все делал как там или только это?

Без кода сложно указывать, в чем ошибка.
...
Рейтинг: 0 / 0
Как раскрасить 1 элемент у ListView?
    #39030655
VaneS Ri_lax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman,

Делаю вот так:
Вот XML активити activity_setting_dialog :
Код: 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.
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.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="ru.domen.myapplication.Setting_dialog"
    android:id="@+id/index_settings">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Введите номер рейса"
        android:id="@+id/textView3"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:textColor="#000000" />
    <EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="number"
        android:ems="10"
        android:id="@+id/editText2"
        android:editable="true"

        android:autoText="false"

        android:numeric="integer"
        android:hint="Пример: 12345"
        android:layout_below="@+id/textView3"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"

        android:enabled="true" />



    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Или выберите день рейса"
        android:id="@+id/textView12"
        android:layout_below="@+id/editText2"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:textColor="#000000" />

    <ListView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/listday"
        android:layout_below="@+id/textView12"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:background="?android:attr/activatedBackgroundIndicator"
        android:listSelector="@color/item_setting_color"

        />

    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Поиск"
        android:id="@+id/button5"
        android:layout_below="@+id/listday"
        android:layout_centerHorizontal="true" />


</RelativeLayout>



Вот сам класс Setting_dialog :
Код: 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.
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_setting_dialog);
        //swch = true;
        date = new Date();

        editNumberRace = (EditText)findViewById(R.id.editText2);


        simpleDateFormat = new SimpleDateFormat("dd.MM.yyyy");

        String[] data = {
                simpleDateFormat.format(new Date(date.getTime()-86400000)),
                simpleDateFormat.format(date),
                simpleDateFormat.format(new Date(date.getTime()+86400000))
        };

        final ListView listView = (ListView)findViewById(R.id.listday);


        listView.setAdapter(new ArrayAdapter<String>(this, R.layout.item_sett, data));
// тут я пытаюсь выделить элемент списка
        listView.setItemChecked(1,true);




                listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                    @Override
                    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                        //  view.setBackgroundColor(Color.parseColor("#456456"));
                    }
                });

        listView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                view.setEnabled(false);
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });





        getSupportActionBar().setDisplayShowHomeEnabled(true);
        getSupportActionBar().setIcon(R.drawable.logo);
        getSupportActionBar().setBackgroundDrawable(getResources().getDrawable(bar));
        getSupportActionBar().setDisplayShowTitleEnabled(false);






        saved = (Button)findViewById(R.id.button5);

        View.OnClickListener onClickListener = new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent();



            }
        };
        saved.setOnClickListener(onClickListener);


    }


Вот XML для каждого элемента списка item_sett :
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="10dp"
    android:textColor="#000000"
    android:textSize="20sp"
    android:textStyle="bold"
    android:state_selected="true">

</TextView>


Элемент выделяется если нажать на него, но вот программно не хочет,
Что я делаю не так?
...
Рейтинг: 0 / 0
Как раскрасить 1 элемент у ListView?
    #39030688
Фотография Джибс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если

listView.post ...
...
Рейтинг: 0 / 0
Как раскрасить 1 элемент у ListView?
    #39031052
йа ламер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VaneS Ri_lax,
попробуйте создать еще один xml разметки для элементов, которые должны раскрашиваться другим цветом. И потом в адаптере выбирать нужный xml.
...
Рейтинг: 0 / 0
Как раскрасить 1 элемент у ListView?
    #39031066
Dmitry Sukhovilin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все проще.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
public class DrawerAdapter extends BaseAdapter {

 @Override
    public View getView(int position, View view, ViewGroup parent) {

        if (view == null) {
            view = layoutInflater.inflate(R.layout.drawer_element, null);
        }

       if (selectedPosition == position) {
            item.setBackgroundColor(XXX);
        } else {
           item.setBackgroundColor(YYY);
        }
}



drawer_element.xml :
Код: xml
1.
2.
3.
4.
5.
6.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/item"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:padding="8dp">
...
Рейтинг: 0 / 0
Как раскрасить 1 элемент у ListView?
    #39031231
VaneS Ri_lax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Джибса если

listView.post ...
Я в этом мало что понимаю, можно по подробнее?
...
Рейтинг: 0 / 0
Как раскрасить 1 элемент у ListView?
    #39031246
VaneS Ri_lax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dmitry SukhovilinВсе проще.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
public class DrawerAdapter extends BaseAdapter {

 @Override
    public View getView(int position, View view, ViewGroup parent) {

        if (view == null) {
            view = layoutInflater.inflate(R.layout.drawer_element, null);
        }

       if (selectedPosition == position) {
            item.setBackgroundColor(XXX);
        } else {
           item.setBackgroundColor(YYY);
        }
}




drawer_element.xml :
Код: xml
1.
2.
3.
4.
5.
6.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/item"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:padding="8dp">



Объясните пожалуйста:
view = layoutInflater.inflate(R.layout.drawer_element, null);
выделяется красным цветом, пишет что нет такого.
я так понимаю это поможет мне раскрасить элемент только на момент создания, но как мне потом переключить фон на другой элемент когда пользователь нажмет на другой?
...
Рейтинг: 0 / 0
Как раскрасить 1 элемент у ListView?
    #39031262
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VaneS Ri_laxОбъясните пожалуйста:
view = layoutInflater.inflate(R.layout.drawer_element, null);
Все таки рекомендую http://startandroid.ru/ru/uroki/vse-uroki-spiskom/81-urok-41-ispolzuem-layoutinflater-dlja-sozdanija-spiska.html и про прочие шалости там почитать. Это все таки "азы".
Код: java
1.
LayoutInflater ltInflater = getLayoutInflater();
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Android [игнор отключен] [закрыт для гостей] / Как раскрасить 1 элемент у ListView?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]