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

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

Войти
Регистрация
Восстановить пароль
 
tolya1095
10 / 7 / 1
Регистрация: 12.10.2012
Сообщений: 158
#1

Использование ListView заканчивается падением приложения - Программирование Android

20.02.2014, 22:34. Просмотров 576. Ответов 6
Метки нет (Все метки)

Все заканчивается крэшем. Можно ли так использовать ListView? Чувствую себя каким-то садистом
XML
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
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >
 
    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
 
        <TableRow
            android:id="@+id/tableRow1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >
 
            <LinearLayout
                android:id="@+id/tr1ll1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical" >
 
            </LinearLayout>
 
            <LinearLayout
                android:id="@+id/tr1ll2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical" >
 
            </LinearLayout>
 
            <LinearLayout
                android:id="@+id/tr1ll3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical" >
 
            </LinearLayout>
        </TableRow>
 
        <TableRow
            android:id="@+id/tableRow2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >
 
            <LinearLayout
                android:id="@+id/tr2ll1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical" >
 
            </LinearLayout>
 
            <LinearLayout
                android:id="@+id/tr2ll2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical" >
 
            </LinearLayout>
 
            <LinearLayout
                android:id="@+id/tr2ll3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical" >
 
            </LinearLayout>
 
        </TableRow>
    </TableLayout>
 
</LinearLayout>
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
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.ListView;
 
public class MainActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        LinearLayout tr1ll1 = (LinearLayout) findViewById(R.id.tr1ll1);
        LinearLayout tr1ll2 = (LinearLayout) findViewById(R.id.tr1ll2);
        LinearLayout tr1ll3 = (LinearLayout) findViewById(R.id.tr1ll3);
        LinearLayout tr2ll1 = (LinearLayout) findViewById(R.id.tr2ll1);
        LinearLayout tr2ll2 = (LinearLayout) findViewById(R.id.tr2ll2);
        LinearLayout tr2ll3 = (LinearLayout) findViewById(R.id.tr2ll3);
        
        ListView[] lview = new ListView[6];
        
        final String[] names = new String[] {
                "Top", "Mid", "Down"            
            };
        
        tr1ll1.addView(lview[0]);
        tr1ll2.addView(lview[1]);
        tr1ll3.addView(lview[2]);
        tr2ll1.addView(lview[3]);
        tr2ll2.addView(lview[4]);
        tr2ll3.addView(lview[5]);
        
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, names);
        lview[0].setAdapter(adapter);
        lview[1].setAdapter(adapter);
        lview[2].setAdapter(adapter);
        lview[3].setAdapter(adapter);
        lview[4].setAdapter(adapter);
        lview[5].setAdapter(adapter);
        
    }
    
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.02.2014, 22:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Использование ListView заканчивается падением приложения (Программирование Android):

Использование ListView в ListView - Программирование Android
Всем привет. Можете показать как использовать ListView в ListView, с заполнением как внешнего ListView, так и внутреннего причем с...

Кастомизация ListView и использование Sticky Header - Программирование Android
Использую библиотеку https://github.com/beworker/pinned-section-listview И столкнулся с вопросом по незнанию Там есть пример, делал на...

Фон приложения (использование nine9patch) - Программирование Android
Понимаю что скорей всего этого уже спрашивали.. но будьте добры, подскажите мне как новичку.. Имеется три активити.. на каждое склепал...

ListView. После добавления кнопки перестал быть доступен сам ListView - Программирование Android
Кастомизировал ListView с помощью нескольких TextView. Но после того, как добавил ImageButton сам список стал недоступен для клика, а...

Listview вывод данных и переход по нажатию на другой Listview SQLite - Программирование Android
Доброго извините за название темы, долго не мог сформировать название, В общем у меня беда с пытаюсь написать программу где первый экран...

Данные из SQlite в ListView, обработка события ListView - Программирование Android
Ребят, есть БД, ListView. Надо при нажатии на строчку ListView вытащить данные int из БД. mList.setOnItemClickListener(new...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
dr_yand
156 / 138 / 6
Регистрация: 13.03.2013
Сообщений: 321
Записей в блоге: 3
21.02.2014, 00:28 #2
Ошибка NullPointerException?
0
tolya1095
10 / 7 / 1
Регистрация: 12.10.2012
Сообщений: 158
21.02.2014, 06:26  [ТС] #3
LogCat
Кликните здесь для просмотра всего текста
02-21 02:24:23.698: D/AndroidRuntime(361): Shutting down VM
02-21 02:24:23.698: W/dalvikvm(361): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
02-21 02:24:23.718: E/AndroidRuntime(361): FATAL EXCEPTION: main
02-21 02:24:23.718: E/AndroidRuntime(361): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.table_test/com.example.table_test.MainActivity}: java.lang.NullPointerException
02-21 02:24:23.718: E/AndroidRuntime(361): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
02-21 02:24:23.718: E/AndroidRuntime(361): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
02-21 02:24:23.718: E/AndroidRuntime(361): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
02-21 02:24:23.718: E/AndroidRuntime(361): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
02-21 02:24:23.718: E/AndroidRuntime(361): at android.os.Handler.dispatchMessage(Handler.java:99)
02-21 02:24:23.718: E/AndroidRuntime(361): at android.os.Looper.loop(Looper.java:123)
02-21 02:24:23.718: E/AndroidRuntime(361): at android.app.ActivityThread.main(ActivityThread.java:4627)
02-21 02:24:23.718: E/AndroidRuntime(361): at java.lang.reflect.Method.invokeNative(Native Method)
02-21 02:24:23.718: E/AndroidRuntime(361): at java.lang.reflect.Method.invoke(Method.java:521)
02-21 02:24:23.718: E/AndroidRuntime(361): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
02-21 02:24:23.718: E/AndroidRuntime(361): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
02-21 02:24:23.718: E/AndroidRuntime(361): at dalvik.system.NativeStart.main(Native Method)
02-21 02:24:23.718: E/AndroidRuntime(361): Caused by: java.lang.NullPointerException
02-21 02:24:23.718: E/AndroidRuntime(361): at android.view.ViewGroup.addView(ViewGroup.java:1815)
02-21 02:24:23.718: E/AndroidRuntime(361): at android.view.ViewGroup.addView(ViewGroup.java:1802)
02-21 02:24:23.718: E/AndroidRuntime(361): at com.example.table_test.MainActivity.onCreate(MainActivity.java:29)
02-21 02:24:23.718: E/AndroidRuntime(361): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
02-21 02:24:23.718: E/AndroidRuntime(361): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
02-21 02:24:23.718: E/AndroidRuntime(361): ... 11 more


Console
Кликните здесь для просмотра всего текста
[2014-02-21 08:23:57 - table_test] ------------------------------
[2014-02-21 08:23:57 - table_test] Android Launch!
[2014-02-21 08:23:57 - table_test] adb is running normally.
[2014-02-21 08:23:57 - table_test] Performing com.example.table_test.MainActivity activity launch
[2014-02-21 08:24:02 - table_test] Application already deployed. No need to reinstall.
[2014-02-21 08:24:02 - table_test] Starting activity com.example.table_test.MainActivity on device emulator-5554
[2014-02-21 08:24:03 - table_test] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.table_test/.MainActivity }
[2014-02-21 08:24:08 - table_test] ------------------------------
[2014-02-21 08:24:08 - table_test] Android Launch!
[2014-02-21 08:24:08 - table_test] adb is running normally.
[2014-02-21 08:24:08 - table_test] Performing com.example.table_test.MainActivity activity launch
[2014-02-21 08:24:10 - table_test] Application already deployed. No need to reinstall.
[2014-02-21 08:24:10 - table_test] Starting activity com.example.table_test.MainActivity on device emulator-5554
[2014-02-21 08:24:12 - table_test] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.table_test/.MainActivity }
[2014-02-21 08:24:19 - table_test] ------------------------------
[2014-02-21 08:24:19 - table_test] Android Launch!
[2014-02-21 08:24:19 - table_test] adb is running normally.
[2014-02-21 08:24:19 - table_test] Performing com.example.table_test.MainActivity activity launch
[2014-02-21 08:24:21 - table_test] Application already deployed. No need to reinstall.
[2014-02-21 08:24:21 - table_test] Starting activity com.example.table_test.MainActivity on device emulator-5554
[2014-02-21 08:24:23 - table_test] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.table_test/.MainActivity }
0
angryrobot
Командир зеленых роботов
348 / 285 / 53
Регистрация: 08.10.2013
Сообщений: 564
21.02.2014, 10:17 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от tolya1095 Посмотреть сообщение
Все заканчивается крэшем.
Вот эта строчка
Java
1
ListView[] lview = new ListView[6];
создает массив из шести элементов каждый из которых - null. Массив надо сначала заполнить прежде чем с ним работать.
1
tolya1095
10 / 7 / 1
Регистрация: 12.10.2012
Сообщений: 158
21.02.2014, 12:12  [ТС] #5
В вашем ответе есть логика, но я не понимаю. Создаю listview. Присваиваю listview к tablerow. Дальше расписываю адаптер. Адаптер присваиваю к listview. Т.е. в тот момент, когда я присвоил адаптер к listview, listview должен был заполниться?
0
verylazy
Заблокирован
21.02.2014, 12:25 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
angryrobot, правильно говорит, вот в этих строках ниже получается, что вы пытаетесь добавить какие-то листвью из массива
массив объявлен, а где же сами листвью? их пока что нет, не созданы, вместо них в массиве записаны null
Java
1
2
3
4
5
6
tr1ll1.addView(lview[0]);
tr1ll2.addView(lview[1]);
tr1ll3.addView(lview[2]);
tr2ll1.addView(lview[3]);
tr2ll2.addView(lview[4]);
tr2ll3.addView(lview[5]);
не уверен, что получится, нет под рукой IDE что бы проверить, но можно добавить пару строк и посмотреть что будет
Java
1
2
3
4
ListView[] lview = new ListView[6];
for (int i = 0; i < lview.length; i++) {
    lview[i] = new ListView(this);
}
1
tolya1095
10 / 7 / 1
Регистрация: 12.10.2012
Сообщений: 158
21.02.2014, 15:43  [ТС] #7
Спасибо. Полчаса назад вспомнил, но не смог отписать. Доберусь до ПК - попробую. Должно сработать

Добавлено через 1 час 34 минуты

Не по теме:

Всем спасибо. Сработало.

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.02.2014, 15:43
Привет! Вот еще темы с ответами:

Как получить текст из окна приложения перед его "падением" ? - C++ WinAPI
Здравствуйте! Есть чужое приложение без исходников, которое пишет протокол в окно RichTextBox. Возникла необходимость прочитать...

Зависание пк с падением изображения и звука - Компьютерное железо
Всем добрый вечер (ночи) Пишу в связи с тем что уже перерыл кучу ресурсов и никакого ответа :scratch: Примеро с 2 недели назад...

Прыжок со свободном падением| Delphi - Delphi
Как задействовать физику с прыжком, как в марио? Помогите.

Использование ListView - C#
Есть некая таблица, содержимое которой вывливается в ListView, но фигня в том, что в таблице содержатся поля битового типа (правда/ложь)....


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
21.02.2014, 15:43
Ответ Создать тему
Опции темы

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