Гость
Форумы / Android [игнор отключен] [закрыт для гостей] / Как раскрасить 1 элемент у ListView? / 15 сообщений из 15, страница 1 из 1
17.08.2015, 08:35
    #39030525
VaneS Ri_lax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскрасить 1 элемент у ListView?
Здравствуйте, у меня есть 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
17.08.2015, 09:13
    #39030537
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскрасить 1 элемент у ListView?
VaneS Ri_laxу меня есть ListView, в нем 3 элемента
Можно сделать так http://startandroid.ru/ru/uroki/vse-uroki-spiskom/81-urok-41-ispolzuem-layoutinflater-dlja-sozdanija-spiska.html но лучше сделать свой адаптер и в нем делать со строками списка что угодно.
...
Рейтинг: 0 / 0
17.08.2015, 09:38
    #39030550
VaneS Ri_lax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскрасить 1 элемент у ListView?
Может не так объяснил, но вот что мне нужно, в общем у меня есть в активити 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
17.08.2015, 09:45
    #39030555
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскрасить 1 элемент у ListView?
...
Рейтинг: 0 / 0
17.08.2015, 10:25
    #39030581
VaneS Ri_lax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскрасить 1 элемент у ListView?
wadman,

Почти, я знаю как задавать параметры цвета текста и самого фона у элемента при нажатии, я не понимаю как мне программно при создании списка выделить нужный мне элемент, а вот если человек нажмет на другой элемент в списке, то выделение перейдет на тот элемент по которому нажал человек
...
Рейтинг: 0 / 0
17.08.2015, 10:38
    #39030587
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскрасить 1 элемент у ListView?
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
17.08.2015, 10:51
    #39030592
VaneS Ri_lax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскрасить 1 элемент у ListView?
wadman,

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

Без кода сложно указывать, в чем ошибка.
...
Рейтинг: 0 / 0
17.08.2015, 12:17
    #39030655
VaneS Ri_lax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскрасить 1 элемент у ListView?
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
17.08.2015, 12:46
    #39030688
Джибс
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскрасить 1 элемент у ListView?
а если

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

Код: 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
18.08.2015, 08:02
    #39031231
VaneS Ri_lax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскрасить 1 элемент у ListView?
Джибса если

listView.post ...
Я в этом мало что понимаю, можно по подробнее?
...
Рейтинг: 0 / 0
18.08.2015, 08:30
    #39031246
VaneS Ri_lax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскрасить 1 элемент у ListView?
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
18.08.2015, 09:00
    #39031262
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскрасить 1 элемент у ListView?
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
Форумы / Android [игнор отключен] [закрыт для гостей] / Как раскрасить 1 элемент у ListView? / 15 сообщений из 15, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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