Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Ошибка с parse.com - "пробелом, апостроф" http://www.cyberforum.ru/android-dev/thread1648026.html
Во-первых, объясню ситуацию... Существует запись данных на parse.com и все работает хорошо. Вот как выглядит запись и загрузки данных из него: public ArrayList<MyObj> loadMyObjs() { ...
Программирование Android Как при смене темы менять стили кнопок?
В приложении используются 2 вида кнопок. Это разные кнопки как по цвету, так и по другим свойствам. Свойства этих 2-х видов кнопок описаны в 2-х разных стилях. <!-- Стиль больших кнопок для...
Подскажите у кого происходит вылет при переходе на Activity Программирование Android
java.lang.NullPointerException java.lang.RuntimeException: Unable to start activity ComponentInfo{com.bastion.teplocomgsm10/com.bastion.teplocomgsm10.NNSSS}: java.lang.NullPointerException at...
Программирование Android Добавление Actionbar в FragmentActivity Всем привет! Подскажите пожалуйста как добавить Actionbar в FragmentActivity. http://www.cyberforum.ru/android-dev/thread1647672.html
Программирование Android Раздельная навигация по GPS или по Glonass http://www.cyberforum.ru/android-dev/thread1647667.html
Возможен - ли раздельный выбор навигации или от спутников GPS или от спутников Глонасс? Сейчас почему - то только одна кнопка "Местоположение" в верхних шторках телефонов. Какая логика...
Программирование Android Взаимодействие Fragment-ов через Activity (interface)
Ребята гляньте пожалуйста не замыленным глазом на код. Пытаюсь понять как организовать взаимодействие фрагментов с помощью активити через интерфейс, но "...что-то пошло не так...", второй день...
Программирование Android Ошибка в v23 сразу после создания проекта
Я только создал новый проект, а Android Studio уже закидывает меня ошибками. Error:(1) Error retrieving parent for item: No resource found that matches the given name...
Программирование Android Затруднение с переключением между активностями Чтобы лучше понимать решил написать приложение расписания пар в университете и наткнулся на одну проблему. Создал одну активность в которой 7 кнопок при нажатии на одну из них происходит переход на... http://www.cyberforum.ru/android-dev/thread1647306.html
Программирование Android Navigation drawer http://www.cyberforum.ru/android-dev/thread1647296.html
Как так подключить navigation drawer чтобы он был доступен не в одном а во всех или в нескольких активити приложения и во всех этих активити чтобы также не нарушался свой контент кнопки, картинки и...
Программирование Android Переход между окнами Читая книгу по андройду и юзая AndroidStudio воздник вопрос* при создании нового проекта в андройде при указании формы BlankActivity выстраивается код из activity_main.xml и content_main.xml ... http://www.cyberforum.ru/android-dev/thread1647184.html
Dantes2104
0 / 0 / 0
Регистрация: 13.01.2015
Сообщений: 61
27.01.2016, 18:26  [ТС] 0

Собственный адаптер на основе ArrayAdapter

27.01.2016, 18:26. Просмотров 857. Ответов 17
Метки (Все метки)

Ответ

Код
Java
1
2
3
4
S.pomfv(parent, contextall);
....
S.pom(tv, contextall);
S.pomtv(tv, contextall);

S.pomfv меняет цвет заднего фона у общего окна, то есть за кнопками.
S.pom меняет цвет фона у заданного элемента, то есть у TextView
S.pomtv меняет цвет текста у TextView.
S - это просто отдельный класс в котором я пишу разные функции.

Нет) Я просто хочу чтобы они работали как кнопки) Без анимаций.

Добавлено через 1 минуту
И функция getView возвращает по умолчанию TextView

Добавлено через 10 минут
Что-то не получается)
Лично я сделал отдельный класс у которого родительский класс ListActivity. Переопределил метод onListItemClick и везде где использовал ListActivity, поменял родительский класс на свой и при переопределении метода вызывал родительский метод. А в адаптере сделал только обработку на action down.
Адаптер
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
public class MyAdater<T> extends ArrayAdapter<T> {
    SharedPreferences s;
    Context contextall;
 
    public MyAdater(Context context, int resource, T[] objects) {
        super(context, resource, objects);
        contextall = context;
    }
 
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        S.pomfv(parent, contextall);
        View v = super.getView(position,convertView,parent);
 
        v.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {
                s = PreferenceManager.getDefaultSharedPreferences(contextall);
                if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
                    String color1 = s.getString("ment2", "#7FFF00");
                    if (S.isHEX(color1)) {
                        view.setBackgroundColor(Color.parseColor(color1));
                    } else {
                        color1 = "#7FFF00";
                        view.setBackgroundColor(Color.parseColor(color1));
                    }
                    return false;
                }
 
                return false;
            }
        });
        TextView tv = (TextView) super.getView(position,v,parent);
        S.pom(tv, contextall);
        S.pomtv(tv, contextall);
        return tv;
    }

Свой класс
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
public class MyListActivity extends ListActivity{
    View[] globview = new View[100];
    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        if (globview[position] == null) {
            globview[position] = v;
        }
        SharedPreferences s;
        s = PreferenceManager.getDefaultSharedPreferences(this);
        String color1 = s.getString("menf","#00BFFF");
        if (S.isHEX(color1)){
            v.setBackgroundColor(Color.parseColor(color1));
        }
        else{
            color1 ="#00BFFF";
            v.setBackgroundColor(Color.parseColor(color1));
        }
    }
 
    @Override
    protected void onPause() {
        SharedPreferences s;
        s = PreferenceManager.getDefaultSharedPreferences(this);
        String color1 = s.getString("menf","#00BFFF");
        for (int a = 0; a < 100;a++){
            if (globview[a] != null){
                if (S.isHEX(color1)){
                    globview[a].setBackgroundColor(Color.parseColor(color1));
                }
                else{
                    color1 ="#00BFFF";
                    globview[a].setBackgroundColor(Color.parseColor(color1));
                }
            }
        }
        super.onPause();
    }
}

Переопределил onPause потому что цвет немного зависал.
По моему так легче чем возится с плохим адаптером.
Теперь только когда нажимаю на элемент и выхожу за его пределы он не меняет цвет. Не подскажете, есть ли такой метод, чтобы при нажимании на экран, в не зависимости от View, обрабатывал событие? Тогда было бы то, что именно я хотел.

Вернуться к обсуждению:
Собственный адаптер на основе ArrayAdapter
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2016, 18:26

Обновление данных в ArrayAdapter
Добрый день. Есть созданный ArrayAdapter. Он добавляется в listView, при достижении конца списка...

ArrayAdapter вылет на clear и add
Приветствую! Вылет на clear. Если эту строку закоментить то вылет на add. В чем может быть...

Как правильно настроить ArrayAdapter?
Создаю своё первое приложение, потому вопрос новичка. Статья, которой я руководствовался -...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.