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

Баг с items при прокручивании ListView - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Установщик apk файлов http://www.cyberforum.ru/android-dev/thread1458057.html
Всем доброго времени. Подскажите пожалуйста, существуют ли решения на android, приложения по типу инсталлятор, чтоб он мог одновременно устанавливать несколько приложений? То есть некий установочный apk файл, внутри которого находятся еще установочные файлы.
Программирование Android Ошибка в logcat AndroidStudio Здравствуйте! Написал простенькое приложенице в Студии, ошибок вроде нет. Но при запуске эмулятора приложение вылетает. Не могу понять что за ошибка. Вот что выдал Лог 05-25 18:16:24.793 0-936/? E/Netd﹕ Failed to open /proc/sys/net/ipv6/conf/default/optimistic_dad: No such file or directory 05-25 18:16:24.793 0-936/? E/Netd﹕ Failed to open... http://www.cyberforum.ru/android-dev/thread1458037.html
Программирование Android WebView в фоне
Нужно в webview открыть определенную ссылку, однако на сайте стоит защита , и открывается только с браузера. Каким образом можно установить настройки клиенту WebView , чтобы он отображался как браузер?
Программирование Android Не отправляет post запрос в эмуляторе android 4.4
Есть приложение, которое отправляет и получает данные из нета посредством пост запроса, в андройд 2.2 все работает хорошо, в андройд 4.4 не работает, в чем может быть проблема ?
Программирование Android Анимация взрыва http://www.cyberforum.ru/android-dev/thread1457599.html
Как реализовать и в какую сторону капать?? У меня есть игра в которой есть окно 7 на 6 клеток и разные фигурки в клетках. И когда 3 одинаковых фигурки собираются в ряд по диагонали или вертикали происходит взрыв. То есть эти фигурки резко разлетаются на мелкие части и пропадают и это сопровождается звуковым эффектом. Как такое реализовать можете подсказать идею и в какую сторону копать?? Какой...
Программирование Android Создание эмулятора в Android Studio Скачал Android Studio. При установке все пути установки программ оставлял по умолчанию. Сейчас создал эмулятор, хочу запустить через него код и он ругается почему-то. Вот что пишет: D:\Android\tools\emulator.exe -netdelay none -netspeed full -avd Nexus_5 emulator: ERROR: x86 emulation currently requires hardware acceleration! Please ensure Intel HAXM is properly installed and usable.... подробнее

Показать сообщение отдельно
Mikalai
256 / 232 / 93
Регистрация: 11.01.2015
Сообщений: 653
27.05.2015, 20:49     Баг с items при прокручивании ListView
Аннотация @Override информирует компилятор о том, что метод перегружает метод в суперклассе.

Попробовал написать адаптер с использованием 2х itemView. Но тут не знаю как переиспользовать старые view-элементы. Наверное такой вариант ресурсозатратен, но по крайней мере работает.

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
public class ListAdapter extends BaseAdapter {
 
    Context context;
    LayoutInflater lInflater;
    int[] numbers;
 
    public ListAdapter(Context context, int[] numbers) {
        this.context = context;
        this.numbers = numbers;
        this.lInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }
 
    @Override
    public int getCount() {
        return numbers.length;
    }
 
    @Override
    public Object getItem(int position) {
        return numbers[position];
    }
 
    @Override
    public long getItemId(int position) {
        return position;
    }
 
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view;
        int element = (Integer) getItem(position);
        if(element % 2 == 0) {
            view = lInflater.inflate(R.layout.item1, parent, false);
        } else {
            view = lInflater.inflate(R.layout.item2, parent, false);
        }
        ((TextView) view.findViewById(R.id.textView)).setText("" + element);
 
        return view;
    }
}
И ещё попытался использовать ViewHolder. Попинайте код если не сложно.

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
public class ListAdapterWithViewHolder extends BaseAdapter {
 
    Context context;
    LayoutInflater lInflater;
    int[] numbers;
 
    public ListAdapterWithViewHolder(Context context, int[] numbers) {
        this.context = context;
        this.numbers = numbers;
        this.lInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }
 
    @Override
    public int getCount() {
        return numbers.length;
    }
 
    @Override
    public Object getItem(int position) {
        return numbers[position];
    }
 
    @Override
    public long getItemId(int position) {
        return position;
    }
 
    static class ViewHolder {
        TextView holderTextView1;
        TextView holderTextView2;
    }
 
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
 
        View view;
        int element = (Integer) getItem(position);
        if(element % 2 == 0) {
            view = lInflater.inflate(R.layout.item11, parent, false);
            ViewHolder viewHolder = getHolder(view);
            if(viewHolder.holderTextView1 == null) {
                viewHolder.holderTextView1 = (TextView) view.findViewById(R.id.textView11);
            }
            viewHolder.holderTextView1.setText("" + element);
        } else {
            view = lInflater.inflate(R.layout.item22, parent, false);
            ViewHolder viewHolder = getHolder(view);
            if(viewHolder.holderTextView2 == null) {
                viewHolder.holderTextView2 = (TextView) view.findViewById(R.id.textView22);
            }
            viewHolder.holderTextView2.setText("" + element);
        }
        return view;
    }
 
    private ViewHolder getHolder(View view) {
        ViewHolder viewHolder = (ViewHolder) view.getTag();
        if(viewHolder == null) {
            viewHolder = new ViewHolder();
            view.setTag(viewHolder);
        }
        return viewHolder;
    }
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru