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

Неадекватное поведение адаптера ListView - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Не могу программно открыть папку с фото http://www.cyberforum.ru/android-dev/thread1461478.html
Здравствуйте, написал свой файловый менеджер, но при запуске должна открыться папка /sdrard/dcim/camera, выдает ошибку, так же при выборе фото в этой папке оно должно загружаться в imageview, выдает ошибку, хотя другие файлы jpg и gif в других папках загружает отлично. В чем же может быть дело?
Программирование Android Смена цветовых тем для стилей View Сейчас в моем приложении одна тема и есть много стилей для разных View. К примеру вот кусок этих стилей. <!-- styles.xml --> <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light" /> <style name="title"> <item name="android:layout_width">match_parent</item> <item name="android:layout_height">wrap_content</item> <item name="android:textSize">22sp</item> <item... http://www.cyberforum.ru/android-dev/thread1461389.html
ориентация экрана Программирование Android
Как сделать так чтобы в тоже время запретить вертикальную ориентацию активити. Но в горизонтальном положении его можно было поворачивать как удобно пользователю?? чтоб оно никогда не было вверх ногами
Программирование Android Ошибки в logcat
День добрый! Решил написать простенькое приложение вот с этого примера http://android-er.blogspot.ru/2014/09/touch-gridview-to-show-photo.html Но, к сожалению , при эмуляции вылетает. Никак не могу понять, в чем дело. Код logcat прикрепляю текстовым файлом, сюда не хочет загружаться Подскажите пожалуйста.
Программирование Android Абстрактная активити http://www.cyberforum.ru/android-dev/thread1460164.html
Здравствуйте. Хочу сделать активити для входа в приложение (ввод логина, пароля, проверка этого всего на сервере и т.д.). И хочу использовать ее в нескольких приложениях в качестве библиотеки, но в каждом рисовать свой layout. Попробовал в метод setContentView вместо ссылки на ресурс layout'a передать абстрактный метод, который возвращает этот id и в наследниках его переопределил. Далее добавил...
Программирование Android Подключиться к БД Имеется MySQL база данных на сервере вида http://xxx.1gb.ru Логин , пароль для входа в PhpMyAdmin Каким образом к ней подключиться, чтобы можно было использовать как обычную SQLiteDataBase в коде? Ткните в ссылку какую нибудь или пример кода. Нужно очень срочно. Заранее большое спасибо! подробнее

Показать сообщение отдельно
Serbis
3 / 3 / 2
Регистрация: 13.07.2012
Сообщений: 123

Неадекватное поведение адаптера ListView - Программирование Android

28.05.2015, 20:18. Просмотров 285. Ответов 3
Метки (Все метки)

Собственно есть кастом-адаптер. В него приходят два массива с данными. В dates находится даты в формате "29.05.15". В photos ссылки на фотографии в фотмате "/data/data/packege/1.jpg;/data/data/packege/2.jpg". Проблема в том, что вызов getView происходит девять раз подряд для каждого элемента списка. В начале подумал что ошибка в том, что в суперкалсс передается ArrayList вместо List. Исправил, но ничего не изменилось. Нигде адаптер не нотифицируется что бы вызывать такое поведение. Мистика какая то, Какие у кого есть идеи?

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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
package ru.solkris.bodymetrics.adapters;
 
import android.annotation.TargetApi;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Build;
import android.provider.MediaStore;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
 
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
 
import ru.solkris.bodymetrics.ChangeProfileActivity;
import ru.solkris.bodymetrics.MainActivity;
import ru.solkris.bodymetrics.R;
import ru.solkris.bodymetrics.core.Core;
import ru.solkris.bodymetrics.fragments.FragmentStat;
 
public class ListGalleryAdapter extends ArrayAdapter<String> {
    private ArrayList<String> dates = new ArrayList<String>();
    private ArrayList<String> photos = new ArrayList<String>();
    private int resource;
    private Context context;       //Контекст активности
    private boolean anim = false;
    private ViewHolder holder;
    private ArrayList<String> bagCounter = new ArrayList<String>();
    public ListGalleryAdapter(Context context, int resource, ArrayList<String> dates, ArrayList<String> photos, boolean anim) {
        super(context, resource, dates);
 
        this.resource = resource;
        this.context = context;
        this.anim = anim;
        this.dates = dates;
        this.photos = photos;
 
        for (int i = 0; i < dates.size(); i++) {
            bagCounter.add("0");
        }
    }
 
    static class ViewHolder {
        TextView tvDate;
        LinearLayout lGallery;
    }
 
    @Override
    public String getItem(int position) {
        //return super.getItem(position);
        return dates.get(position);
    }
 
    @Override
    public int getPosition(String item) {
        return super.getPosition(item);
    }
 
    @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {       //Стандартный обработчик загрузки элемента
        holder = new ViewHolder();
        View v = convertView;
        LayoutInflater vi;
        vi = LayoutInflater.from(getContext());
 
        if (v == null) {
            v = vi.inflate(resource, null);
            holder.tvDate = (TextView) v.findViewById(R.id.tv_date_gallery);
            holder.lGallery = (LinearLayout) v.findViewById(R.id.lGallery);
            v.setTag(holder);
        } else {
            holder = (ViewHolder) v.getTag();
        }
 
        String[] photoList = null;
 
        photoList = photos.get(position).split(";");
 
            for (int i = 0; i < photoList.length; i++) {
 
                Uri uri = Uri.parse(photoList[i]);
                addImage(uri);
                holder.tvDate.setText(dates.get(position));
            }
 
        return v;
 
    }
 
    private void addImage(Uri uri) {
        Bitmap galleryPic = null;
        ImageView iv = new ImageView(context);
 
        galleryPic = BitmapFactory.decodeFile(uri.toString());
        galleryPic = Core.getInstance().resizeBitmap(galleryPic, Core.getInstance().dpToPx(100));
        iv.setImageBitmap(galleryPic);
        holder.lGallery.addView(iv);
        ViewGroup.LayoutParams params = iv.getLayoutParams();
        params.width = Core.getInstance().dpToPx(100);
        params.height = Core.getInstance().dpToPx(100);
        iv.setLayoutParams(params);
    }
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru