Как вынести обработчик из кастомного ResourceCursorAdapter
Как вынести обработчик из кастомного ResourceCursorAdapter
Здравствуйте!
Я новичок, Прошу помощи знающих людей.
Пишу будильник. храню будильники в базе SQLite.
На главном Activity есть ListView, который берет данные из БД через CustomAdapter (унаследованный от ResourceCursorAdapter)
Код инициализации (в MainActivity):
[syntax=java5] CustomAdapter customadapter = new CustomAdapter (getApplicationContext(), R.layout.mainlist_item, cursor, true); // Создаем адаптер и настраиваем список
lvAlarmsList = (ListView) findViewById(R.id.listViewAlarmsList);
lvAlarmsList.setAdapter(customadapter);[/syntax]
Код адаптера:
[syntax=java5]public class CustomAdapter extends ResourceCursorAdapter {
public final String LOG_TAG = "myLogs";
public CustomAdapter(Context context, int mainlistItem, Cursor c, boolean autoRequery) {
super(context, mainlistItem, c, autoRequery);
}
@Override
public void bindView(View view, Context context, final Cursor cursor) { //Засовываем данные в поля
final int rowID = cursor.getInt(cursor.getColumnIndex(DB.KEY_ROWID)); //Получаем ID строки из курсора (курсор в определенной строке)
final DB db;
db = new DB(context);
CheckBox cbEnable = (CheckBox)view.findViewById(R.id.cbEnable);
cbEnable.setChecked(Boolean.valueOf(cursor.getString(cursor.getColumnIndex(DB.KEY_ENABLE))));
TextView tvDescription = (TextView)view.findViewById(R.id.tvDescription);
tvDescription.setText(cursor.getString(cursor.getColumnIndex(DB.KEY_DESCRIPTION)));
TextView tvAlarmTime = (TextView)view.findViewById(R.id.tvAlarmTime);
tvAlarmTime.setText(MainActivity.formatTime(cursor.getInt(cursor.getColumnIndex(DB.KEY_ALARMHOUR)), cursor.getInt(cursor.getColumnIndex(DB.KEY_ALARMMIN))));
TextView tvDaysOfWeek = (TextView)view.findViewById(R.id.tvDaysOfWeek);
String daysOfWeek = "";
if (Boolean.valueOf(cursor.getString(cursor.getColumnIndex(DB.KEY_MONDAY)))) daysOfWeek = daysOfWeek + "Пн";
if (Boolean.valueOf(cursor.getString(cursor.getColumnIndex(DB.KEY_TUESDAY)))) if (daysOfWeek.length() > 0) daysOfWeek = daysOfWeek + ", Вт"; else daysOfWeek = daysOfWeek + "Вт";
if (Boolean.valueOf(cursor.getString(cursor.getColumnIndex(DB.KEY_WEDNESDAY)))) if (daysOfWeek.length() > 0) daysOfWeek = daysOfWeek + ", Ср"; else daysOfWeek = daysOfWeek + "Ср";
if (Boolean.valueOf(cursor.getString(cursor.getColumnIndex(DB.KEY_THURSDAY)))) if (daysOfWeek.length() > 0) daysOfWeek = daysOfWeek + ", Чт"; else daysOfWeek = daysOfWeek + "Чт";
if (Boolean.valueOf(cursor.getString(cursor.getColumnIndex(DB.KEY_FRIDAY)))) if (daysOfWeek.length() > 0) daysOfWeek = daysOfWeek + ", Пт"; else daysOfWeek = daysOfWeek + "Пт";
if (Boolean.valueOf(cursor.getString(cursor.getColumnIndex(DB.KEY_SATURDAY)))) if (daysOfWeek.length() > 0) daysOfWeek = daysOfWeek + ", Сб"; else daysOfWeek = daysOfWeek + "Сб";
if (Boolean.valueOf(cursor.getString(cursor.getColumnIndex(DB.KEY_SUNDAY)))) if (daysOfWeek.length() > 0) daysOfWeek = daysOfWeek + ", Вс"; else daysOfWeek = daysOfWeek + "Вс";
tvDaysOfWeek.setText(daysOfWeek);
cbEnable.setOnCheckedChangeListener(new OnCheckedChangeListener() { //Обработчик для чекбокса
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
db.open();
boolean res = db.changeAlarmState(rowID, isChecked);
cursor.requery();
db.close();
//Log.d(LOG_TAG, "изменение= " + res);
//Log.d(LOG_TAG, "Item " + rowID + " " + isChecked);
}
});
}
}[/syntax]
Нужно обработчик нажатия на checkBox вынести в MainActivity. Подскажите, как до него достучаться?
Я новичок, Прошу помощи знающих людей.
Пишу будильник. храню будильники в базе SQLite.
На главном Activity есть ListView, который берет данные из БД через CustomAdapter (унаследованный от ResourceCursorAdapter)
Код инициализации (в MainActivity):
[syntax=java5] CustomAdapter customadapter = new CustomAdapter (getApplicationContext(), R.layout.mainlist_item, cursor, true); // Создаем адаптер и настраиваем список
lvAlarmsList = (ListView) findViewById(R.id.listViewAlarmsList);
lvAlarmsList.setAdapter(customadapter);[/syntax]
Код адаптера:
[syntax=java5]public class CustomAdapter extends ResourceCursorAdapter {
public final String LOG_TAG = "myLogs";
public CustomAdapter(Context context, int mainlistItem, Cursor c, boolean autoRequery) {
super(context, mainlistItem, c, autoRequery);
}
@Override
public void bindView(View view, Context context, final Cursor cursor) { //Засовываем данные в поля
final int rowID = cursor.getInt(cursor.getColumnIndex(DB.KEY_ROWID)); //Получаем ID строки из курсора (курсор в определенной строке)
final DB db;
db = new DB(context);
CheckBox cbEnable = (CheckBox)view.findViewById(R.id.cbEnable);
cbEnable.setChecked(Boolean.valueOf(cursor.getString(cursor.getColumnIndex(DB.KEY_ENABLE))));
TextView tvDescription = (TextView)view.findViewById(R.id.tvDescription);
tvDescription.setText(cursor.getString(cursor.getColumnIndex(DB.KEY_DESCRIPTION)));
TextView tvAlarmTime = (TextView)view.findViewById(R.id.tvAlarmTime);
tvAlarmTime.setText(MainActivity.formatTime(cursor.getInt(cursor.getColumnIndex(DB.KEY_ALARMHOUR)), cursor.getInt(cursor.getColumnIndex(DB.KEY_ALARMMIN))));
TextView tvDaysOfWeek = (TextView)view.findViewById(R.id.tvDaysOfWeek);
String daysOfWeek = "";
if (Boolean.valueOf(cursor.getString(cursor.getColumnIndex(DB.KEY_MONDAY)))) daysOfWeek = daysOfWeek + "Пн";
if (Boolean.valueOf(cursor.getString(cursor.getColumnIndex(DB.KEY_TUESDAY)))) if (daysOfWeek.length() > 0) daysOfWeek = daysOfWeek + ", Вт"; else daysOfWeek = daysOfWeek + "Вт";
if (Boolean.valueOf(cursor.getString(cursor.getColumnIndex(DB.KEY_WEDNESDAY)))) if (daysOfWeek.length() > 0) daysOfWeek = daysOfWeek + ", Ср"; else daysOfWeek = daysOfWeek + "Ср";
if (Boolean.valueOf(cursor.getString(cursor.getColumnIndex(DB.KEY_THURSDAY)))) if (daysOfWeek.length() > 0) daysOfWeek = daysOfWeek + ", Чт"; else daysOfWeek = daysOfWeek + "Чт";
if (Boolean.valueOf(cursor.getString(cursor.getColumnIndex(DB.KEY_FRIDAY)))) if (daysOfWeek.length() > 0) daysOfWeek = daysOfWeek + ", Пт"; else daysOfWeek = daysOfWeek + "Пт";
if (Boolean.valueOf(cursor.getString(cursor.getColumnIndex(DB.KEY_SATURDAY)))) if (daysOfWeek.length() > 0) daysOfWeek = daysOfWeek + ", Сб"; else daysOfWeek = daysOfWeek + "Сб";
if (Boolean.valueOf(cursor.getString(cursor.getColumnIndex(DB.KEY_SUNDAY)))) if (daysOfWeek.length() > 0) daysOfWeek = daysOfWeek + ", Вс"; else daysOfWeek = daysOfWeek + "Вс";
tvDaysOfWeek.setText(daysOfWeek);
cbEnable.setOnCheckedChangeListener(new OnCheckedChangeListener() { //Обработчик для чекбокса
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
db.open();
boolean res = db.changeAlarmState(rowID, isChecked);
cursor.requery();
db.close();
//Log.d(LOG_TAG, "изменение= " + res);
//Log.d(LOG_TAG, "Item " + rowID + " " + isChecked);
}
});
}
}[/syntax]
Нужно обработчик нажатия на checkBox вынести в MainActivity. Подскажите, как до него достучаться?
Re: Как вынести обработчик из кастомного ResourceCursorAdapt
объявить в активити и в адаптер передать ссылку на него, а в адаптере уже в bindView использовать эту ссылку
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Как вынести обработчик из кастомного ResourceCursorAdapt
Спасибо! разобрался)
Re: Как вынести обработчик из кастомного ResourceCursorAdapt
Все-таки не до конца разобрался...
Задача: изменять в БД значение поля Enable (boolean) для каждой строки, на котором нажали checkBox.
Вынес OnCheckedChangeListener в MainActivity. Теперь курсор неадекватно стал себя вести. на 1 позиции списка вываливается с ошибкой "CursorIndexOutOfBoundsException: index -1 requested, with a size of 3"
Обработчик в MainActivity:
[syntax=java5] public static OnCheckedChangeListener myOnCheckedChangedListener = new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
int rowID = cur.getInt(cur.getColumnIndex(DB.KEY_ROWID)); //Колонка "_id"
db.open();
db.changeAlarmState(rowID, isChecked);
db.close();
cursor.requery();
}
};[/syntax]
Насколько я понял своим неопытным взглядом, при нажатии на чекбокс курсор не переходит на эту строку (а должен?), потому и вываливается...
Метод в классе работы с БД, для изменения состояния записи в БД:
[syntax=java5]public boolean changeAlarmState(long rowID, boolean isChecked){
if (!mDB.isOpen()) open();
ContentValues updateValue = new ContentValues();
updateValue.put(KEY_ENABLE, String.valueOf(isChecked));
boolean res = mDB.update(DB_TABLE, updateValue, KEY_ROWID + "=" + rowID, null) > 0;
return res;
}[/syntax]
Вот XML элемента списка:
[syntax=xml]<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_margin="2dp"
android:orientation="horizontal" >
<CheckBox
android:id="@+id/cbEnable"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginRight="3dp"
android:focusable="false" />
<View
android:layout_width="1dip"
android:layout_height="fill_parent"
android:layout_marginBottom="2dp"
android:layout_marginTop="2dp"
android:background="@color/DarkGray" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_marginLeft="3dp"
android:layout_weight="1"
android:orientation="vertical" >
<TextView
android:id="@+id/tvAlarmTime"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="left|top"
android:layout_marginLeft="10dp"
android:textSize="25sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tvDaysOfWeek"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|left"
android:textSize="16sp"
android:textStyle="italic" />
</LinearLayout>
<TextView
android:id="@+id/tvDescription"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="right"
android:layout_weight="1"
android:gravity="right|center_vertical" />
</LinearLayout>
</LinearLayout>[/syntax]
Задача: изменять в БД значение поля Enable (boolean) для каждой строки, на котором нажали checkBox.
Вынес OnCheckedChangeListener в MainActivity. Теперь курсор неадекватно стал себя вести. на 1 позиции списка вываливается с ошибкой "CursorIndexOutOfBoundsException: index -1 requested, with a size of 3"
Обработчик в MainActivity:
[syntax=java5] public static OnCheckedChangeListener myOnCheckedChangedListener = new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
int rowID = cur.getInt(cur.getColumnIndex(DB.KEY_ROWID)); //Колонка "_id"
db.open();
db.changeAlarmState(rowID, isChecked);
db.close();
cursor.requery();
}
};[/syntax]
Насколько я понял своим неопытным взглядом, при нажатии на чекбокс курсор не переходит на эту строку (а должен?), потому и вываливается...
Метод в классе работы с БД, для изменения состояния записи в БД:
[syntax=java5]public boolean changeAlarmState(long rowID, boolean isChecked){
if (!mDB.isOpen()) open();
ContentValues updateValue = new ContentValues();
updateValue.put(KEY_ENABLE, String.valueOf(isChecked));
boolean res = mDB.update(DB_TABLE, updateValue, KEY_ROWID + "=" + rowID, null) > 0;
return res;
}[/syntax]
Вот XML элемента списка:
[syntax=xml]<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_margin="2dp"
android:orientation="horizontal" >
<CheckBox
android:id="@+id/cbEnable"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginRight="3dp"
android:focusable="false" />
<View
android:layout_width="1dip"
android:layout_height="fill_parent"
android:layout_marginBottom="2dp"
android:layout_marginTop="2dp"
android:background="@color/DarkGray" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_marginLeft="3dp"
android:layout_weight="1"
android:orientation="vertical" >
<TextView
android:id="@+id/tvAlarmTime"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="left|top"
android:layout_marginLeft="10dp"
android:textSize="25sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tvDaysOfWeek"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|left"
android:textSize="16sp"
android:textStyle="italic" />
</LinearLayout>
<TextView
android:id="@+id/tvDescription"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="right"
android:layout_weight="1"
android:gravity="right|center_vertical" />
</LinearLayout>
</LinearLayout>[/syntax]
Re: Как вынести обработчик из кастомного ResourceCursorAdapt
xml списка тут бесполезен
на какой строке ошибка? в каком методе? можно лог нормально привести? И приведи создание базы , я не пойму что за поле у тебя такое boolean
на какой строке ошибка? в каком методе? можно лог нормально привести? И приведи создание базы , я не пойму что за поле у тебя такое boolean
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: Как вынести обработчик из кастомного ResourceCursorAdapt
Создание базы:
[syntax=java5]
//Константы БД
public static final String DB_NAME = "AlarmCallerDB"; //Название БД
public static final String DB_TABLE = "Alarms"; //Название таблицы БД
public static final String DBS_TABLE = "Settings"; //Название таблицы БД Настроек
private static final int DB_VERSION = 1; //Версия БД
public static final String KEY_ROWID = "_id"; //ID записи
//Константы ключевые + БД
public static final String KEY_ENABLE = "enable"; //Вкл
public static final String KEY_DESCRIPTION = "description"; //Название
public static final String KEY_REPEATTIME = "repeattime"; //Время повтора
public static final String KEY_VIBRATE = "vibrate"; //Вибрация
public static final String KEY_RINGTONEURI = "ringtonuri"; //Рингтон
public static final String KEY_ALARMHOUR = "alarmhour"; //Час будильника
public static final String KEY_ALARMMIN = "alarmmin"; //Минута будильника
public static final String KEY_MONDAY = "monday"; //Дни недели
public static final String KEY_TUESDAY = "tuesday";
public static final String KEY_WEDNESDAY = "wednesday";
public static final String KEY_THURSDAY = "thursday";
public static final String KEY_FRIDAY = "friday";
public static final String KEY_SATURDAY = "saturday";
public static final String KEY_SUNDAY = "sunday";
private static final String DB_CREATE =
"CREATE table " + DB_TABLE + " ("
+ KEY_ROWID + " integer primary key autoincrement,"
+ KEY_ENABLE + " boolean,"
+ KEY_DESCRIPTION + " text,"
+ KEY_REPEATTIME + " integer,"
+ KEY_VIBRATE + " boolean,"
+ KEY_RINGTONEURI + " text,"
+ KEY_ALARMHOUR + " integer,"
+ KEY_ALARMMIN + " integer,"
+ KEY_MONDAY + " boolean,"
+ KEY_TUESDAY + " boolean,"
+ KEY_WEDNESDAY + " boolean,"
+ KEY_THURSDAY + " boolean,"
+ KEY_FRIDAY + " boolean,"
+ KEY_SATURDAY + " boolean,"
+ KEY_SUNDAY + " boolean"
+ ");";[/syntax]
При нажатии на 3-й и более checkBox списка - всё нормально. 2-й глючит, но не вываливается. 1й пункт списка выпадает с этим логом:
[syntax=java5]
//Константы БД
public static final String DB_NAME = "AlarmCallerDB"; //Название БД
public static final String DB_TABLE = "Alarms"; //Название таблицы БД
public static final String DBS_TABLE = "Settings"; //Название таблицы БД Настроек
private static final int DB_VERSION = 1; //Версия БД
public static final String KEY_ROWID = "_id"; //ID записи
//Константы ключевые + БД
public static final String KEY_ENABLE = "enable"; //Вкл
public static final String KEY_DESCRIPTION = "description"; //Название
public static final String KEY_REPEATTIME = "repeattime"; //Время повтора
public static final String KEY_VIBRATE = "vibrate"; //Вибрация
public static final String KEY_RINGTONEURI = "ringtonuri"; //Рингтон
public static final String KEY_ALARMHOUR = "alarmhour"; //Час будильника
public static final String KEY_ALARMMIN = "alarmmin"; //Минута будильника
public static final String KEY_MONDAY = "monday"; //Дни недели
public static final String KEY_TUESDAY = "tuesday";
public static final String KEY_WEDNESDAY = "wednesday";
public static final String KEY_THURSDAY = "thursday";
public static final String KEY_FRIDAY = "friday";
public static final String KEY_SATURDAY = "saturday";
public static final String KEY_SUNDAY = "sunday";
private static final String DB_CREATE =
"CREATE table " + DB_TABLE + " ("
+ KEY_ROWID + " integer primary key autoincrement,"
+ KEY_ENABLE + " boolean,"
+ KEY_DESCRIPTION + " text,"
+ KEY_REPEATTIME + " integer,"
+ KEY_VIBRATE + " boolean,"
+ KEY_RINGTONEURI + " text,"
+ KEY_ALARMHOUR + " integer,"
+ KEY_ALARMMIN + " integer,"
+ KEY_MONDAY + " boolean,"
+ KEY_TUESDAY + " boolean,"
+ KEY_WEDNESDAY + " boolean,"
+ KEY_THURSDAY + " boolean,"
+ KEY_FRIDAY + " boolean,"
+ KEY_SATURDAY + " boolean,"
+ KEY_SUNDAY + " boolean"
+ ");";[/syntax]
При нажатии на 3-й и более checkBox списка - всё нормально. 2-й глючит, но не вываливается. 1й пункт списка выпадает с этим логом:
Код: Выделить всё
02-17 22:16:03.968: W/dalvikvm(3247): threadid=1: thread exiting with uncaught exception (group=0xa6238288)
02-17 22:16:03.972: E/AndroidRuntime(3247): FATAL EXCEPTION: main
02-17 22:16:03.972: E/AndroidRuntime(3247): android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 3
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.database.AbstractCursor.checkPosition(AbstractCursor.java:418)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:136)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:50)
02-17 22:16:03.972: E/AndroidRuntime(3247): at ru.Leon.alarmcallersqlite.CustomAdapter.bindView(CustomAdapter.java:29)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.widget.CursorAdapter.getView(CursorAdapter.java:250)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.widget.AbsListView.obtainView(AbsListView.java:2251)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.widget.ListView.makeAndAddView(ListView.java:1769)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.widget.ListView.fillSpecific(ListView.java:1318)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.widget.ListView.layoutChildren(ListView.java:1600)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.widget.AbsListView.onLayout(AbsListView.java:2102)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.view.View.layout(View.java:13754)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.view.ViewGroup.layout(ViewGroup.java:4362)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1649)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1507)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.widget.LinearLayout.onLayout(LinearLayout.java:1420)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.view.View.layout(View.java:13754)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.view.ViewGroup.layout(ViewGroup.java:4362)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.view.View.layout(View.java:13754)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.view.ViewGroup.layout(ViewGroup.java:4362)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1649)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1507)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.widget.LinearLayout.onLayout(LinearLayout.java:1420)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.view.View.layout(View.java:13754)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.view.ViewGroup.layout(ViewGroup.java:4362)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.view.View.layout(View.java:13754)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.view.ViewGroup.layout(ViewGroup.java:4362)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1866)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1687)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:998)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4212)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.view.Choreographer.doCallbacks(Choreographer.java:555)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.view.Choreographer.doFrame(Choreographer.java:525)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.os.Handler.handleCallback(Handler.java:615)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.os.Handler.dispatchMessage(Handler.java:92)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.os.Looper.loop(Looper.java:137)
02-17 22:16:03.972: E/AndroidRuntime(3247): at android.app.ActivityThread.main(ActivityThread.java:4745)
02-17 22:16:03.972: E/AndroidRuntime(3247): at java.lang.reflect.Method.invokeNative(Native Method)
02-17 22:16:03.972: E/AndroidRuntime(3247): at java.lang.reflect.Method.invoke(Method.java:511)
02-17 22:16:03.972: E/AndroidRuntime(3247): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
02-17 22:16:03.972: E/AndroidRuntime(3247): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
02-17 22:16:03.972: E/AndroidRuntime(3247): at dalvik.system.NativeStart.main(Native Method)
Re: Как вынести обработчик из кастомного ResourceCursorAdapt
тут конечно нифига не понятно, но что будет, если поменять местами две строчки?:Leon2k писал(а):Все-таки не до конца разобрался...
[syntax=java5]int rowID = cur.getInt(cur.getColumnIndex(DB.KEY_ROWID)); //Колонка "_id"
db.open();[/syntax]
это я в целях саморазвития интересуюсь

Re: Как вынести обработчик из кастомного ResourceCursorAdapt
При получении курсора БД открывается в OnCreatealtwin писал(а):тут конечно нифига не понятно, но что будет, если поменять местами две строчки?:Leon2k писал(а):Все-таки не до конца разобрался...
[syntax=java5]int rowID = cur.getInt(cur.getColumnIndex(DB.KEY_ROWID)); //Колонка "_id"
db.open();[/syntax]
это я в целях саморазвития интересуюсь
Re: Как вынести обработчик из кастомного ResourceCursorAdapt
вот сюда два раза щелкни..
at ru.Leon.alarmcallersqlite.CustomAdapter.bindView(CustomAdapter.java:29)
at ru.Leon.alarmcallersqlite.CustomAdapter.bindView(CustomAdapter.java:29)
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: Как вынести обработчик из кастомного ResourceCursorAdapt
В общем, вернул обработчик на место (в класс адаптера), и вызвал обработку следующего будильника через класс БД ссылкой. Пока всё работает как должно.