Дано: при нажатии на кнопку из адаптера во фрагмент передается Parcelable
:
public void onItemClick(Category category) {
String type;
if (TYPE) {
type = "addIncomeItem";
} else {
type = "addCostsItem";
}
getApplicationContext().sendBroadcast(new Intent(type).putExtra("myObj", category));
finish();
}
В активити не могу получить его, всегда получаю null
, хотя во время дебага вижу что объект передается (пример на скрине):
Скрин при получении в активити:
В чем может быть проблема?
Parcelable
класс на всякий случай:
public class Category implements Parcelable {
public String name;
public int photoId;
public Category(String name, int photoId) {
this.name = name;
this.photoId = photoId;
}
public String getName() {
return name;
}
//parcel part
public Category(Parcel in){
String[] data= new String[2];
in.readStringArray(data);
this.name= data[0];
this.photoId= Integer.parseInt(data[1]);
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeStringArray(new String[]{this.name, String.valueOf(this.photoId)});
}
public static final Parcelable.Creator<Category> CREATOR= new Parcelable.Creator<Category>() {
@Override
public Category createFromParcel(Parcel source) {
return new Category(source); //using parcelable constructor
}
@Override
public Category[] newArray(int size) {
return new Category[size];
}
};
}
Проблема в том, что Вы извлекаете данные не из того интента.
На втором скриншоте видно, что Вы получаете интент, который пришел в активити при ее старте, однако Вам нужен тот интент, который пришел в метод onReceive(...)
.
В методе onReceive(...)
пропишите:
Category test = intent.getParcelableExtra("myObj");
addItem(test);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Хочу создать сбалансированное, отсортированное дерево, для того чтобы отрабатывать методы вставки, поиска, подсчета размера и глубины дерева
Создаем массив чисел от 1 до 75, с помощью рандома чисел от 1 до 75 начинаем поиск элемента в массивеСовпал - удалили