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

Список с разными и сложными элементами - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android GreenDao ORM query метод http://www.cyberforum.ru/android-dev/thread1664122.html
Здравствуйте, использую для работы с БД GreenDao ORM и у меня возник вопрос: у меня есть вот примерно такой RecyclerView (см. картинку). Каждый item имеет свой id начиная с 0. Вопрос: как мне в зависимости от нажатого пункта (id) доставать нужную информацию с БД? Например когда кликнули на id 0 то перешли на второе Activity и с базы вытащили такое описание "Это описание id 0", кликнули на id1...
Программирование Android RSS и новостное приложение Суть:Нужно простое новостное приложние, которое грубо транслирует RSS. Скажите, как это грамотно организовать. Я начинающий и знания пока что малы. Скажите какие знания понадобятся для реализации такого приложения. Что нужно для интеграции RSS. Заранее всем очень благодарен http://www.cyberforum.ru/android-dev/thread1664086.html
Получение публикаций пользователя facebook Программирование Android
Всем привет, прошу вашей помощи, в поиске решения такой задачи: необходимо получить все публикации пользователя в facebook-е, я сделал авторизацию пользователя с помощью facebook api, все проходит успешно, но ни как не могу понять как мне получить публикации? может кто-то сталкивался с такой задачей? Я понял что это можно сделать вот таким вот способом: try { final Request request =...
Программирование Android Прочитать часть файла
Нужно открыть файл и, начиная от 4-го байта, все записать в массив byte. Такой код записывает все, но начиная с 4-го байта в массиве: InputStream is = new FileInputStream(APP_PREFERENCES_NAME); is.read(SettingsFileBytes, 4, is.available()); Пример: в файле: 0,1,2,3,4,5,6,7,8,9 в массиве должно быть: 4,5,6,7,8,9 Как это сделать?
Программирование Android Пропущенные звонки и СМС http://www.cyberforum.ru/android-dev/thread1663959.html
Я вывожу на экран количество пропущенных звонков и СМС, но информация выводятся только после 2-го пропущенного уведомления. Как я понял по логам, нумерация начинается с 0-я. Так ли это? Я не смог найти информацию об этом в документации, да и на форумах также пусто. А вот что еще интересно: если сделать так - cursor.getCount() + 1, то при очередном вызове onCreate вместо положенного количества...
Программирование Android Calendar.get(Calendar.WEEK_OF_YEAR) на разных устройствах возвращает разные значения Собственно вопрос в названии темы. Данный код возвращает разное значение на разных устройствах. Но в большинстве все таки проверка на четность правильное значение возвращает. В чем может быть проблема? public boolean evenWeek(){ Calendar cal = Calendar.getInstance(); int day = cal.get(Calendar.WEEK_OF_YEAR); boolean flag; if(day%2 == 0) flag =... подробнее

Показать сообщение отдельно
New man
42 / 33 / 9
Регистрация: 23.05.2011
Сообщений: 304
17.02.2016, 22:58  [ТС]
Я вот попробовал использовать стандартный ListView и написать свой Adapter.

Вот Adapter.
Кликните здесь для просмотра всего текста
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
public class BoxAdapter extends BaseAdapter {
    Context ctx;
    LayoutInflater layoutInflater;
    List<AbstractItemClass> objects;
 
    BoxAdapter(Context context, List<AbstractItemClass> items) {
        ctx = context;
        objects = items;
        layoutInflater = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }
 
    @Override
    public int getCount() {
        return objects.size();
    }
 
    @Override
    public Object getItem(int position) {
        return objects.get(position);
    }
 
    @Override
    public long getItemId(int position) {
        return position;
    }
 
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view = convertView;
        AbstractItemClass item = objects.get(position);
        if (view == null) {
            final int id = Item0.class.isInstance(item) ? R.layout.item0 : R.layout.item1;
            view = layoutInflater.inflate(id, parent, false);
        }
        //Инициализируем содержимое по разному в зависимости от того, какого класса наш объект
        if (Item0.class.isInstance(item))
            ((TextView) view.findViewById(R.id.textView)).setText(((Item0) item).text);
        else {
            Item1 i = (Item1) item;
            ((TextView) view.findViewById(R.id.textView2)).setText(i.text1);
            ((TextView) view.findViewById(R.id.textView3)).setText(i.text2);
        }
        ((Button) view.findViewById(R.id.btn)).setOnClickListener(onClickListener);
        return view;
    }
 
    View.OnClickListener onClickListener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //Do something
        }
    };
}

Это классы данных
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
public class Item0 extends AbstractItemClass {
    public String text = "";
 
    public Item0(String arg) {
        text = arg;
    }
 
    @Override
    public String toString() {
        return text;
    }
}
 
public class Item1 extends AbstractItemClass {
    public String text1;
    public String text2;
 
    public Item1(String arg1, String arg2) {
        text1 = arg1;
        text2 = arg2;
    }
 
    @Override
    public String toString() {
        final StringBuffer sb = new StringBuffer();
        sb.append(text1).append("\t").append(text2);
        return sb.toString();
    }
}
Вот это MainActivity.
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class MainActivity extends AppCompatActivity {
 
    final Random rand = new Random();
    List<AbstractItemClass> items = new LinkedList<>();
    BoxAdapter boxAdapter;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        fillData();
        boxAdapter = new BoxAdapter(this, items);
        ((ListView) findViewById(R.id.lvMain)).setAdapter(boxAdapter);
    }
 
    private void fillData() {
        for (int i = 0; i < 50; i++) {
            String str = "" + i;
            AbstractItemClass item = rand.nextBoolean() ? new Item0(str) : new Item1(str,str);
            items.add(item);
        }
    }
}


В результаты разные элементы списка выводились, как на скрине, хотя по макету в версии ZeroType сначала должен был быть текст, а под ним кнопка. Но, как видно на скрине, текст вообще затёрся.
Плюс ко всему, всё это падает при прокрутке вниз с сигналом
02-17 19:52:45.276 27398-27398/? I/Process: Sending signal. PID: 27398 SIG: 9
Как бы это исправить?
Прикрепил скрин того, что получилось.
P.S. А про Github я не подумал, надо поискать, спасибо.
Миниатюры
Список с разными и сложными элементами  
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru