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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.60
antel
3 / 3 / 0
Регистрация: 23.10.2010
Сообщений: 101
#1

Массив из ImageView - Android

10.08.2012, 14:48. Просмотров 2524. Ответов 12
Метки нет (Все метки)

Подскажите как создать массив из ImageView?
Пытался сделать так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
RelativeLayout l=(RelativeLayout)findViewById(R.id.RelativeLayout1);
ImageView[] pole;
for(int i = 0;i<3;i++)
{
pole[i] = new ImageView(this);
pole[i].setId(i);
pole[i].setLayoutParams(new RelativeLayout.LayoutParams(35,35));
pole[i].setScaleType(ImageView.ScaleType.CENTER_CROP);
pole[i].setPadding(0, 0, 0, 0);
pole[i].setImageResource(R.drawable.ic_launcher);
l.addView(pole[i]);
}
Но оно ругается.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Bes-s
30 / 30 / 2
Регистрация: 05.11.2011
Сообщений: 178
10.08.2012, 18:33     Массив из ImageView #2
1. id объекта не должен быть 0.
2. В программе не должно быть два одинаковых id.
3. Где лог ошибки?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
10.08.2012, 23:42     Массив из ImageView #3
NullPointerException.

ImageView[] pole = new ImageView[3];
учите Java.

Добавлено через 2 часа 8 минут
Цитата Сообщение от Bes-s Посмотреть сообщение
В программе не должно быть два одинаковых id.
почему?
Bes-s
30 / 30 / 2
Регистрация: 05.11.2011
Сообщений: 178
11.08.2012, 00:29     Массив из ImageView #4
Цитата Сообщение от V0v1k Посмотреть сообщение
почему?
крашает. пример у сожалению не скину, но иногда выдает что т вроде: view c таким id уже существует.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
11.08.2012, 01:46     Массив из ImageView #5
хм, у меня есть десятки вюшек с одинаковым id хотя бы там, где есть листы с кастомными айтемами (иначе и быть не может). ну а если в разных активитях, то вообще проблем не вижу.

Добавлено через 1 минуту
может это в одном GroupView не может быть вюшек с одинаковым id на одном уровне?
ну, про одну программу, Вы точно загнули.

Добавлено через 25 минут
Цитата Сообщение от V0v1k Посмотреть сообщение
может это в одном GroupView не может быть вюшек с одинаковым id на одном уровне?
хм, даже это можно
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?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="fill_parent"
    android:orientation="vertical" >
 
    <TextView
        android:id="@+id/qqq"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />
 
    <TextView
        android:id="@+id/qqq"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />
 
</LinearLayout>
не знаю как вы добились такой ошибки....

Добавлено через 7 минут
Даже такой код
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
      LinearLayout layout = new LinearLayout(this);
        layout.setLayoutParams(new LinearLayout.LayoutParams(
                LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
 
        TextView t = new TextView(this);
        t.setText("1");
        t.setId(0);
 
        layout.addView(t, new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
                LayoutParams.WRAP_CONTENT));
        t = new TextView(this);
        t.setText("1");
        t.setId(0);
        layout.addView(t, new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
                LayoutParams.WRAP_CONTENT));
        setContentView(layout);
не дал никаких ошибок...
и id 0, и одинаковое у обеих view.
silentnuke
Android Programmer
138 / 139 / 5
Регистрация: 08.12.2010
Сообщений: 421
11.08.2012, 03:09     Массив из ImageView #6
Цитата Сообщение от V0v1k Посмотреть сообщение
хм, у меня есть десятки вюшек с одинаковым id хотя бы там, где есть листы с кастомными айтемами (иначе и быть не может). ну а если в разных активитях, то вообще проблем не вижу.

Добавлено через 1 минуту
может это в одном GroupView не может быть вюшек с одинаковым id на одном уровне?
ну, про одну программу, Вы точно загнули.

Добавлено через 25 минут

хм, даже это можно
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?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="fill_parent"
    android:orientation="vertical" >
 
    <TextView
        android:id="@+id/qqq"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />
 
    <TextView
        android:id="@+id/qqq"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />
 
</LinearLayout>
не знаю как вы добились такой ошибки....

Добавлено через 7 минут
Даже такой код
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
      LinearLayout layout = new LinearLayout(this);
        layout.setLayoutParams(new LinearLayout.LayoutParams(
                LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
 
        TextView t = new TextView(this);
        t.setText("1");
        t.setId(0);
 
        layout.addView(t, new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
                LayoutParams.WRAP_CONTENT));
        t = new TextView(this);
        t.setText("1");
        t.setId(0);
        layout.addView(t, new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
                LayoutParams.WRAP_CONTENT));
        setContentView(layout);
не дал никаких ошибок...
и id 0, и одинаковое у обеих view.
хм предполагаю, что креш легко вызвать.
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?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="fill_parent"
    android:orientation="vertical" >
 
    <TextView
        android:id="@+id/qqq"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />
 
    <ImageView
        android:id="@+id/qqq"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
 
</LinearLayout>
теперь, врядли адекватно сработает)
TextView tv = (TextView) findFivewById(R.id.qqq);
ImageView tv = (ImageView) findFivewById(R.id.qqq);
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
11.08.2012, 03:16     Массив из ImageView #7
Цитата Сообщение от silentnuke Посмотреть сообщение
TextView tv = (TextView) findFivewById(R.id.qqq);
ImageView tv = (ImageView) findFivewById(R.id.qqq);
ну естественно, что в обеих случает вытянется TextView и будет креш при кастинге. это единственный случай когда не нужно делать одинаковый id, ну а в других случаях это нужно и даже необходимо.
silentnuke
Android Programmer
138 / 139 / 5
Регистрация: 08.12.2010
Сообщений: 421
11.08.2012, 03:18     Массив из ImageView #8
Цитата Сообщение от V0v1k Посмотреть сообщение
ну естественно, что в обеих случает вытянется TextView и будет креш при кастинге. это единственный случай когда не нужно делать одинаковый id, ну а в других случаях это нужно и даже необходимо.
эм, не стоит мне это рассказывать)
Прекрасно знаю, ибо разрабатываю игры, и там это очень активно использую.
Но вы сказали, что не знаете как привести к крешу, вот вам вариант)
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
11.08.2012, 03:22     Массив из ImageView #9
а креш при желании можно всегда вызвать, например как у топикстартера ImageView[] pole; pole[i] = new ImageView(this);Но это не означает, что нельзя юзать масивы, нужно просто правильно их юзать

Добавлено через 2 минуты
Цитата Сообщение от silentnuke Посмотреть сообщение
Но вы сказали, что не знаете как привести к крешу, вот вам вариант)
я просил такой креш
Цитата Сообщение от Bes-s Посмотреть сообщение
view c таким id уже существует.
а вы мне креш с кастингом написали не имеющий отношения к одинаковым id, еще бы сразу написали (Activity)new Object();
Bes-s
30 / 30 / 2
Регистрация: 05.11.2011
Сообщений: 178
11.08.2012, 04:22     Массив из ImageView #10
Цитата Сообщение от V0v1k Посмотреть сообщение
а вы мне креш с кастингом написали не имеющий отношения к одинаковым id, еще бы сразу написали (Activity)new Object();
вполне возможно, это было давно, и точно вспомнить что было в логе сложно. Но суть все поняли.
Что до нулевого - если в relativeLayout пытаться выстроить отношения вокруг элемента с нулевым id - то он будет просто игнорироваться.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
11.08.2012, 13:32     Массив из ImageView #11
Цитата Сообщение от Bes-s Посмотреть сообщение
Но суть все поняли.
ага, суть в том, что вы написали неправду.
antel
3 / 3 / 0
Регистрация: 23.10.2010
Сообщений: 101
11.08.2012, 15:24  [ТС]     Массив из ImageView #12
V0v1k, может посоветуете что почитать по андроиду?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.08.2012, 16:00     Массив из ImageView
Еще ссылки по теме:

На счет ImageView Android
Сохранение ImageView Android
Android ImageView
Android Анимация ImageView
ImageView вращение Android

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

Или воспользуйтесь поиском по форуму:
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
11.08.2012, 16:00     Массив из ImageView #13
Я вот это сейчас читаю - Рето Майер - Android 2. Программирование приложений
А так-то по документации учился http://developer.android.com/intl/ru...ing/index.html
Yandex
Объявления
11.08.2012, 16:00     Массив из ImageView
Ответ Создать тему
Опции темы

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