По всей видимости вы не внимательно читали предыдущие уроки, либо вовсе их не читали. Например в уроке №19 четко и ясно показано ка обращаться элементам интерфейса, в частности к текстовым полям.sanSagittarius писал(а):Подскажите, плииз, как обратиться к полю.
Урок 109. Android 3. Fragments. ListFragment - список
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Урок 109. Android 3. Fragments. ListFragment - список
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
Re: Урок 109. Android 3. Fragments. ListFragment - список
Всем привет, возникла такая проблема при объявлении адаптеру что список изменился (adapter.notifyDataSetChanged()) приложение вылетает со следующими ошибками:
11-12 19:30:28.616: E/AndroidRuntime(539): FATAL EXCEPTION: main
11-12 19:30:28.616: E/AndroidRuntime(539): java.lang.NullPointerException
11-12 19:30:28.616: E/AndroidRuntime(539): at com.exam2ple.line2.PostsList.addItem(PostsList.java:119)
11-12 19:30:28.616: E/AndroidRuntime(539): at com.exam2ple.line2.MainActivity$PostFragment$1.onClick(MainActivity.java:97)
11-12 19:30:28.616: E/AndroidRuntime(539): at android.view.View.performClick(View.java:3511)
11-12 19:30:28.616: E/AndroidRuntime(539): at android.view.View$PerformClick.run(View.java:14105)
11-12 19:30:28.616: E/AndroidRuntime(539): at android.os.Handler.handleCallback(Handler.java:605)
11-12 19:30:28.616: E/AndroidRuntime(539): at android.os.Handler.dispatchMessage(Handler.java:92)
11-12 19:30:28.616: E/AndroidRuntime(539): at android.os.Looper.loop(Looper.java:137)
11-12 19:30:28.616: E/AndroidRuntime(539): at android.app.ActivityThread.main(ActivityThread.java:4424)
11-12 19:30:28.616: E/AndroidRuntime(539): at java.lang.reflect.Method.invokeNative(Native Method)
11-12 19:30:28.616: E/AndroidRuntime(539): at java.lang.reflect.Method.invoke(Method.java:511)
11-12 19:30:28.616: E/AndroidRuntime(539): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
11-12 19:30:28.616: E/AndroidRuntime(539): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
11-12 19:30:28.616: E/AndroidRuntime(539): at dalvik.system.NativeStart.main(Native Method)
11-12 19:30:29.236: I/dalvikvm(539): threadid=3: reacting to signal 3
11-12 19:30:29.256: I/dalvikvm(539): Wrote stack traces to '/data/anr/traces.txt'
11-12 19:30:29.816: I/dalvikvm(539): threadid=3: reacting to signal 3
11-12 19:30:29.866: I/dalvikvm(539): Wrote stack traces to '/data/anr/traces.txt'
11-12 19:30:30.006: I/Process(539): Sending signal. PID: 539 SIG: 9
При этом метод добавления пункта списка вызывается из другого фрагмента.
В чем может быть проблема?
11-12 19:30:28.616: E/AndroidRuntime(539): FATAL EXCEPTION: main
11-12 19:30:28.616: E/AndroidRuntime(539): java.lang.NullPointerException
11-12 19:30:28.616: E/AndroidRuntime(539): at com.exam2ple.line2.PostsList.addItem(PostsList.java:119)
11-12 19:30:28.616: E/AndroidRuntime(539): at com.exam2ple.line2.MainActivity$PostFragment$1.onClick(MainActivity.java:97)
11-12 19:30:28.616: E/AndroidRuntime(539): at android.view.View.performClick(View.java:3511)
11-12 19:30:28.616: E/AndroidRuntime(539): at android.view.View$PerformClick.run(View.java:14105)
11-12 19:30:28.616: E/AndroidRuntime(539): at android.os.Handler.handleCallback(Handler.java:605)
11-12 19:30:28.616: E/AndroidRuntime(539): at android.os.Handler.dispatchMessage(Handler.java:92)
11-12 19:30:28.616: E/AndroidRuntime(539): at android.os.Looper.loop(Looper.java:137)
11-12 19:30:28.616: E/AndroidRuntime(539): at android.app.ActivityThread.main(ActivityThread.java:4424)
11-12 19:30:28.616: E/AndroidRuntime(539): at java.lang.reflect.Method.invokeNative(Native Method)
11-12 19:30:28.616: E/AndroidRuntime(539): at java.lang.reflect.Method.invoke(Method.java:511)
11-12 19:30:28.616: E/AndroidRuntime(539): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
11-12 19:30:28.616: E/AndroidRuntime(539): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
11-12 19:30:28.616: E/AndroidRuntime(539): at dalvik.system.NativeStart.main(Native Method)
11-12 19:30:29.236: I/dalvikvm(539): threadid=3: reacting to signal 3
11-12 19:30:29.256: I/dalvikvm(539): Wrote stack traces to '/data/anr/traces.txt'
11-12 19:30:29.816: I/dalvikvm(539): threadid=3: reacting to signal 3
11-12 19:30:29.866: I/dalvikvm(539): Wrote stack traces to '/data/anr/traces.txt'
11-12 19:30:30.006: I/Process(539): Sending signal. PID: 539 SIG: 9
При этом метод добавления пункта списка вызывается из другого фрагмента.
Код: Выделить всё
public void addItem(){
p = new Post();
title = p.getTitle();
date = p.getNow_date();
data.add(0, p);
Log.e(TAG, "пункт добавлен");
adapter.notifyDataSetChanged();
}
Re: Урок 109. Android 3. Fragments. ListFragment - список
MainActivity.java:97
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Re: Урок 109. Android 3. Fragments. ListFragment - список
вот именно эта строка и представляет собой вызов метода добавления и обновления адаптера
Код: Выделить всё
new PostsList().addItem();
Re: Урок 109. Android 3. Fragments. ListFragment - список
PostsList.java:119
Re: Урок 109. Android 3. Fragments. ListFragment - список
Это строка обновления адаптера
В этом и состоит мой вопрос, почему при обновлении адаптера приложение вылетает?
Код: Выделить всё
adapter.notifyDataSetChanged();
Re: Урок 109. Android 3. Fragments. ListFragment - список
adapter == null, т.е. не определен.iandryxa писал(а):Это строка обновления адаптераВ этом и состоит мой вопрос, почему при обновлении адаптера приложение вылетает?Код: Выделить всё
adapter.notifyDataSetChanged();
Re: Урок 109. Android 3. Fragments. ListFragment - список
то есть как не определен, можно если не сложно по подробнее?
Re: Урок 109. Android 3. Fragments. ListFragment - список
строчка:
[syntax=java]adapter.notifyDataSetChanged();[/syntax]
выполняется до того как "появится" адаптер:
[syntax=java]adapter = new MyAdapter(); //класс адаптера может быть другой[/syntax]
[syntax=java]adapter.notifyDataSetChanged();[/syntax]
выполняется до того как "появится" адаптер:
[syntax=java]adapter = new MyAdapter(); //класс адаптера может быть другой[/syntax]
Re: Урок 109. Android 3. Fragments. ListFragment - список
понял, спасибо за помощь)
-
- Сообщения: 8
- Зарегистрирован: 27 окт 2014, 11:35
Re: Урок 109. Android 3. Fragments. ListFragment - список
Ребята, помогите новичку, пожалуйста!
Решил углубиться в тему урока - чтобы можно было добавить данные в БД и потом отобразить в списке. Добавил класс DB.java и поля ввода текста. С этим проблем не возникло - данные успешно добавились в БД.
После чего считываю данные в курсор Curcor. По логам - операция тоже проходит успешно.
А вот отобразить эти данные из курсора никак не получается. Перерыл кучу сайтов, но везде примеры либо через строковый массив (задается прямо в коде), либо данные отображаются через SimpleCursorAdapter, тогда как в рамках текущего урока SimpleCursorAdapter является deprecated и программа вылетает с ошибкой "Unfortunately..."
При этом использую следующий код:
Подскажите, пожалуйста, какой адаптер использовать и, если не сложно, пример того, как в данном случае правильно делать связку курсор-адаптер-фрагмент(ListFragment).
С уважением,
Александр
Решил углубиться в тему урока - чтобы можно было добавить данные в БД и потом отобразить в списке. Добавил класс DB.java и поля ввода текста. С этим проблем не возникло - данные успешно добавились в БД.
После чего считываю данные в курсор Curcor. По логам - операция тоже проходит успешно.
А вот отобразить эти данные из курсора никак не получается. Перерыл кучу сайтов, но везде примеры либо через строковый массив (задается прямо в коде), либо данные отображаются через SimpleCursorAdapter, тогда как в рамках текущего урока SimpleCursorAdapter является deprecated и программа вылетает с ошибкой "Unfortunately..."
При этом использую следующий код:
Код: Выделить всё
final SimpleCursorAdapter adapter = new SimpleCursorAdapter(getApplicationContext(), android.R.layout.simple_list_item_1, cursor, from, to);
final ListView lv = (ListView) findViewById(R.id.fragment1);
lv.setAdapter(adapter);
С уважением,
Александр
Re: Урок 109. Android 3. Fragments. ListFragment - список
не SimpleCursorAdapter deprecated, а его конструктор. Используй другой и будет тебе счастье
http://developer.android.com/reference/ ... sorAdapter(android.content.Context, int, android.database.Cursor, java.lang.String[], int[])
http://developer.android.com/reference/ ... sorAdapter(android.content.Context, int, android.database.Cursor, java.lang.String[], int[])
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
-
- Сообщения: 8
- Зарегистрирован: 27 окт 2014, 11:35
Re: Урок 109. Android 3. Fragments. ListFragment - список
Не выходит у меня каменная чаша! (((Foenix писал(а):Используй другой и будет тебе счастье
Немного продвинулся, используя другой конструктор (теперь не ругается на SimpleCursorAdapter и программа аварийно не закрывается):
Код: Выделить всё
mAdapter = new SimpleCursorAdapter(getActivity(),
android.R.layout.simple_list_item_1, null,
new String[] { DB.COLUMN_TXT, DB.COLUMN_ID },
new int[] { R.layout.fragment}, 0);
setListAdapter(mAdapter);
Помогите, плиз...
-
- Сообщения: 8
- Зарегистрирован: 27 окт 2014, 11:35
Re: Урок 109. Android 3. Fragments. ListFragment - список
Неужели нет желающих помочь новичку?!?sanSagittarius писал(а): Помогите, плиз...
Re: Урок 109. Android 3. Fragments. ListFragment - список
new int { R.layout.fragment} наверное не в тему. Сдесь нужно дать id TextView которые находятся в android.R.layout.simple_list_item_1.
А вообще создайте свой класс адаптера, наследующий SimpleCursorAdapter, свою разметку ячейки - сделайте красивую конфетку. Заодно разберетесь в адаптерах.
А вообще создайте свой класс адаптера, наследующий SimpleCursorAdapter, свою разметку ячейки - сделайте красивую конфетку. Заодно разберетесь в адаптерах.
Re: Урок 109. Android 3. Fragments. ListFragment - список
советую тебе прислушаться и написать свой адаптер. Там все намного понятней, чем кажется.finberg писал(а):new int { R.layout.fragment} наверное не в тему. Сдесь нужно дать id TextView которые находятся в android.R.layout.simple_list_item_1.
А вообще создайте свой класс адаптера, наследующий SimpleCursorAdapter, свою разметку ячейки - сделайте красивую конфетку. Заодно разберетесь в адаптерах.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
-
- Сообщения: 8
- Зарегистрирован: 27 окт 2014, 11:35
Re: Урок 109. Android 3. Fragments. ListFragment - список
Благодарю за наводку! Буду копать в этом направлении (кстати, от полезной ссылочки по этой теме тоже не отказался бы).finberg писал(а): А вообще создайте свой класс адаптера, наследующий SimpleCursorAdapter, свою разметку ячейки - сделайте красивую конфетку. Заодно разберетесь в адаптерах.
Хотя, признаться, жаль оставлять эту тему недоделанной - все, вроде, выглядело таким удобным для размещения списков. Логично было предположить, что ListFragment умеет красиво и с базами данных работать... Ан-нет...
Re: Урок 109. Android 3. Fragments. ListFragment - список
дальше уроки читай, там все про это есть.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 109. Android 3. Fragments. ListFragment - список
Здравствуйте уважаемый Админ и Модератор.
Я уже не знаю, как решить эту проблему и что делать дальше. Хочу создать ListView с скользящим заголовками.
То есть, при перемещение списка, наверху Заголовок списка тоже двигался и исчезал верх.
У меня в качестве заголовка Slider.
У меня есть другое решение, но оно не эффективное и не очень гибкое...
XML
CODE:
p.s. Возможно ли, что внутри ListView элементы были из Fragment'ов?Пример, кода
Я уже не знаю, как решить эту проблему и что делать дальше. Хочу создать ListView с скользящим заголовками.
То есть, при перемещение списка, наверху Заголовок списка тоже двигался и исчезал верх.
У меня в качестве заголовка Slider.
У меня есть другое решение, но оно не эффективное и не очень гибкое...
XML
Код: Выделить всё
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/slidingView"
android:layout_width="match_parent"
android:layout_height="100dp" />
<ListView
android:id="@android:id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@android:id/empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/text_size_normal"
android:gravity="center"
android:text="Нет подключение к интернету" />
</LinearLayout>
Код: Выделить всё
package too.aibo.hpt.iKitap;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.ListFragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import too.aibo.hpt.smallclass.SlidingDrawer;
/**
* Created by Admin on 01.12.2014.
*/
public class withSlider extends ListFragment {
String data[] = {"1", "2", "3", "4", "5", "6", "7", "8", "6", "7", "8", "6", "7", "8"};
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_expandable_list_item_1, data);
setListAdapter(adapter);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.list_fragment_with_sliders, null);
Fragment fragment = new SlidingDrawer();
Bundle bundle1 = new Bundle();
bundle1.putInt("OR", 1);
fragment.setArguments(bundle1);
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction().replace(R.id.slidingView, fragment).commit();
return view;
}
}
Re: Урок 109. Android 3. Fragments. ListFragment - список
не нужно ничего такого городить.
Просто делай заголовок - как обычную первую строчку списка. ЭТо можно сделать разными способами - определить два типа вьюшек для списка, например, или просто в зависимости от содержимого подменять компоненты строки. Но без кастомного адаптера тут не обойтись. Дочитай уроки до кастомного адаптера.
Все это нужно делать в getView()
Просто делай заголовок - как обычную первую строчку списка. ЭТо можно сделать разными способами - определить два типа вьюшек для списка, например, или просто в зависимости от содержимого подменять компоненты строки. Но без кастомного адаптера тут не обойтись. Дочитай уроки до кастомного адаптера.
Все это нужно делать в getView()
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198