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

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

Войти
Регистрация
Восстановить пароль
 
Cuda1
18 / 18 / 7
Регистрация: 08.10.2014
Сообщений: 98
#1

Фон для списка на CustomAdapter - Android

03.06.2015, 15:00. Просмотров 206. Ответов 10
Метки нет (Все метки)

Здравствуйте. У меня есть свой адаптер из которого заполняется список:
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
public class TargetListActivity extends ListActivity {
    final static String STRING ="STRING";
    final static String IMAGE = "IMAGE";
    public Integer[] mTargetArray = new Integer[]{R.string.Bird,R.string.Trash,R.string.Sun,
    R.string.Plain,R.string.IceCream,R.string.Home,R.string.Dig,R.string.Cat};
    public Integer[]mImageArray = new Integer[] {R.mipmap.bird,
            R.mipmap.trash,
            R.mipmap.sun,
            R.mipmap.plain,
            R.mipmap.ice_cream,
            R.mipmap.home,
            R.mipmap.dig,
            R.mipmap.cat};
    private TargetAdapter mAdapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ListView listView = (ListView) findViewById(R.id.listView);
        mAdapter = new TargetAdapter(this);
        setListAdapter(mAdapter);
    }
 
 
    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
    }
    public class TargetAdapter extends BaseAdapter{
        private LayoutInflater mLayoutInflater;
        public TargetAdapter(Context context){
            mLayoutInflater = LayoutInflater.from(context);
        }
 
        @Override
        public int getCount() {
            return mTargetArray.length;
        }
 
        @Override
        public Object getItem(int position) {
            return position;
        }
 
        @Override
        public long getItemId(int position) {
            return position;
        }
 
        public int getString(int position){
            return mTargetArray[position];
        }
 
        public int getImage (int position){
            return mImageArray[position];
        }
 
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            if (convertView==null) convertView = mLayoutInflater.inflate(R.layout.activity_target_list,null);
 
            ImageView targetIcon = (ImageView)convertView.findViewById(R.id.imageViewIcon);
            targetIcon.setImageResource(mImageArray[position]);
            TextView targetName = (TextView)convertView.findViewById(R.id.textViewTargetName);
            targetName.setText(mTargetArray[position]);
            return convertView;
        }
    }
}
А вот сама разметка для item
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?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="60dp"
    android:orientation="horizontal">
 
    <ImageView
        android:id="@+id/imageViewIcon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
 
    <TextView
        android:id="@+id/textViewTargetName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="20sp"
        android:textStyle="bold"
        android:singleLine="false"
        android:layout_gravity="center"
        android:textColor="@android:color/black" />
 
</LinearLayout>
Подскажите, пожалуйста, как можно задать фон у всего списка? Как я понимаю моя разметка предусматривает установку фона только для элементов. Можно попробовать вставить вместо всего listview и задать ему фон, но тогда я этот listview не смогу прикрутить к моему адаптеру.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
androbro
319 / 279 / 55
Регистрация: 17.10.2014
Сообщений: 827
03.06.2015, 15:13     Фон для списка на CustomAdapter #2
Цитата Сообщение от Cuda1 Посмотреть сообщение
Можно попробовать вставить вместо всего listview и задать ему фон, но тогда я этот listview не смогу прикрутить к моему адаптеру.
а что разве установка bg у ListView в xml не помогает?
Cuda1
18 / 18 / 7
Регистрация: 08.10.2014
Сообщений: 98
03.06.2015, 15:16  [ТС]     Фон для списка на CustomAdapter #3
androbro, ну так я же написал, что тогда не смогу к ListView прицепить свой адаптер.

Странно, долго думал, но как написал сюда сразу пришло решение, хоть и не совсем изящное. Задал тему всей активности и сменил фон в ней. и заработало)
XML
1
2
3
 <style name="CustomTheme" parent="AppTheme">
        <item name="android:windowBackground">@mipmap/background</item>
    </style>
androbro
319 / 279 / 55
Регистрация: 17.10.2014
Сообщений: 827
03.06.2015, 15:22     Фон для списка на CustomAdapter #4
Цитата Сообщение от Cuda1 Посмотреть сообщение
ну так я же написал, что тогда не смогу к ListView прицепить свой адаптер.
эт из каких это соображений???
Cuda1
18 / 18 / 7
Регистрация: 08.10.2014
Сообщений: 98
03.06.2015, 15:32  [ТС]     Фон для списка на CustomAdapter #5
androbro, а как можно? listview.setAdapter(mAdapter) - не сработает. а по другому я не знаю как.
androbro
319 / 279 / 55
Регистрация: 17.10.2014
Сообщений: 827
03.06.2015, 15:35     Фон для списка на CustomAdapter #6
Cuda1,
Цитата Сообщение от Cuda1 Посмотреть сообщение
а как можно? listview.setAdapter(mAdapter) - не сработает
а по вашему если установить bg через setBackgroundResource(), то установить адаптер далее нет возможности?
где тут связь?
Cuda1
18 / 18 / 7
Регистрация: 08.10.2014
Сообщений: 98
03.06.2015, 15:39  [ТС]     Фон для списка на CustomAdapter #7
androbro,
Цитата Сообщение от androbro Посмотреть сообщение
а по вашему если установить bg через setBackgroundResource(), то установить адаптер далее нет возможности?
где тут связь?
правильно, связи тут нет, и я такого не говорил) я сказал что не знаю как поставить созданный адаптер на элемент ListView.
androbro
319 / 279 / 55
Регистрация: 17.10.2014
Сообщений: 827
03.06.2015, 15:53     Фон для списка на CustomAdapter #8
Цитата Сообщение от Cuda1 Посмотреть сообщение
я сказал что не знаю как поставить созданный адаптер на элемент ListView.

адаптер ставится на весь ListView а не на его конкретный элемент
Cuda1
18 / 18 / 7
Регистрация: 08.10.2014
Сообщений: 98
03.06.2015, 16:52  [ТС]     Фон для списка на CustomAdapter #9
androbro, когда я говорил элемент listview я имел ввиду сам view. короч ладно, разговор ниочем, проблему решил. всем спасибо)
androbro
319 / 279 / 55
Регистрация: 17.10.2014
Сообщений: 827
03.06.2015, 17:04     Фон для списка на CustomAdapter #10
Цитата Сообщение от Cuda1 Посмотреть сообщение
когда я говорил элемент listview я имел ввиду сам view.
ааа, ну бывает)))))
удачного Вам девелопа с такой терминологией
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2015, 17:16     Фон для списка на CustomAdapter
Еще ссылки по теме:

Изменил фон для Custom ListView не работает подсветка при нажатии Android
Android Фон jpg для layout
Узнать фон SurfaceView Android
Разметка (фон аккаунта) Android
Адаптер для списка сообщений мессенджера Android

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

Или воспользуйтесь поиском по форуму:
Cuda1
18 / 18 / 7
Регистрация: 08.10.2014
Сообщений: 98
03.06.2015, 17:16  [ТС]     Фон для списка на CustomAdapter #11
androbro, да терминология как терминология, здесь немного другое...
Yandex
Объявления
03.06.2015, 17:16     Фон для списка на CustomAdapter
Ответ Создать тему
Опции темы

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