Подскажите, пожалуйста, почему не передаётся объект contact?
public class RVAdapter extends
RecyclerView.Adapter<RVAdapter.ContactsViewHolder> {
private ArrayList<Contact> contact;
private Context context;
private int position;
public RVAdapter(ArrayList<Contact> contact, Context context) {
this.contact = contact;
this.context = context;
}
public ContactsViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_card, parent, false);
return new ContactsViewHolder(view);
}
public void onBindViewHolder(ContactsViewHolder holder, int position) {
this.position = position;
final Contact person = contact.get(position);
holder.setRecord(person);
holder.textName.setText(person.getName());
holder.textPhone.setText(person.getPhone());
holder.textBirhday.setText(person.getBirthday());
holder.cv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(view.getContext(), Info.class);
intent.putExtra("IDsent", person.getId());
intent.putExtra("person",person);
Log.d("Отправил", String.valueOf(person));
view.getContext().startActivity(intent);
}
});
}
@Override
public int getItemCount() {
return contact.size();
}
class ContactsViewHolder extends RecyclerView.ViewHolder {
TextView textName, textPhone, textBirhday;
CardView cv;
Contact contact;
public ContactsViewHolder(View itemView) {
super(itemView);
textName = itemView.findViewById(R.id.card_name);
textPhone = itemView.findViewById(R.id.card_phone);
textBirhday = itemView.findViewById(R.id.card_birthday);
cv = itemView.findViewById(R.id.card_view);
}
public void setRecord(Contact contact) {
this.contact = contact;
}
}
}
public class Info extends AppCompatActivity {
public Button delite, change;
EditText editName, editPhone, editDR;
//public ArrayList<Contact> contact;
Contact contact;
int id;
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_info);
initView();
//contact = getIntent().getParcelableArrayListExtra("person");
id = getIntent().getIntExtra("IDsent", id);
contact = getIntent().getParcelableExtra("person"); //person IDsent
Log.d("ПРИНЯЛ", String.valueOf(contact));
try{
delite.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ContactHelper ch = new ContactHelper(getApplicationContext());
String c = String.valueOf(contact);
//ch.delete(contact.getId());
Log.d("ПРИНЯЛ", String.valueOf(id));
Intent intent = new Intent(Info.this, MainActivity.class);
startActivity(intent);
}
});
}catch (Exception e){
Log.d("ERROR", e.getMessage());
}
change.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ContactHelper ch = new ContactHelper(getApplicationContext());
Intent intent = new Intent(Info.this, MainActivity.class);
startActivity(intent);
}
});
}
void initView(){
delite = findViewById(R.id.delite_btn);
change = findViewById(R.id.change);
editName = findViewById(R.id.editName);
editPhone = findViewById(R.id.editNumber);
editDR = findViewById(R.id.editBirthday);
}
}
public class Contact implements Parcelable {
public int id;
private String name;
private String phone;
private String birthday;
public Contact(int id, String name, String phone, String birthday) {
this.id = id;
this.name = name;
this.phone = phone;
this.birthday = birthday;
}
protected Contact(Parcel in) {
id = in.readInt();
name = in.readString();
phone = in.readString();
birthday = in.readString();
}
public static final Parcelable.Creator<Contact> CREATOR = new Parcelable.Creator<Contact>() {
@Override
public Contact createFromParcel(Parcel in) {
return new Contact(in);
}
@Override
public Contact[] newArray(int size) {
return new Contact[size];
}
};
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
@Override
public String toString() {
return "Contact{" +
"id=" + id +
", name='" + name + '\'' +
", phone='" + phone + '\'' +
", birthday='" + birthday + '\'' +
'}'+"\n";
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
}
}
Вот что выдаёт в лог
03-16 21:30:56.050 6687-6687/com.example.buroroll.homeworkdb D/Отправил: Contact{id=5, name='Имя контакта', phone='Телефон', birthday='Дата ДР'}
03-16 21:30:56.237 6687-6687/com.example.buroroll.homeworkdb D/ПРИНЯЛ: Contact{id=0, name='null', phone='null', birthday='null'}
writeToParcel
забыли реализовать:
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(this.id);
dest.writeString(this.name);
dest.writeString(this.phone);
dest.writeString(this.birthday);
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Здравствуйте, в интернете так и не смог найти на на такой вопрос ответ: Считываю obj файл, по нему формирую модель, вывожу на экран - все отлично...
Очень понравилась красивая меню в приложении StacExchange которое всплывает снизу когда нажимаешь на кнопку archivements сверхуКак такое же реализовать
Имеется контроллер AddlistОн вызывается из главного окна и осуществляет добавление нового Tab в TabPane контроллера другого класса: ManageLists
В 17 версии CodeBlocks появились шаблоны проектов и файлов на Java (вроде бы в 16-м ещё не было)Но в списке поддерживаемых компиляторов я не нашёл ничего...