Как передать значение Listview в другое Activity при клике на значение из списка?(Значения Listview берется из FireBase)
Когда я передаю этим образом передается только 1 Значение из списка и его свойства
Listview берет свой дизайн из другого XML
list.setClickable(true);
//Передача в новое Активити
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
Intent about = new Intent(MainActivity.this, AboutActivity.class);
TextView name1 = findViewById(R.id.name);
TextView about1 = findViewById(R.id.about);
TextView price1 = findViewById(R.id.price);
String pack = name1.getText().toString();
String about_text = about1.getText().toString();
String price_text = price1.getText().toString();
about.putExtra("packname", pack);
about.putExtra("about_text", about_text);
about.putExtra("price_text", price_text);
startActivity(about);
}
});
//Адаптер для ListView
private class AccAdapter extends ArrayAdapter<Accounts> {
AccAdapter() {
super(MainActivity.this, R.layout.list_design);
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
final View view = getLayoutInflater().inflate(R.layout.list_design, null);
final Accounts accounts = getItem(position);
((TextView) view.findViewById(R.id.name)).setText(accounts.text_one);
((TextView) view.findViewById(R.id.about)).setText(accounts.text_two);
((TextView) view.findViewById(R.id.price)).setText(accounts.text_three);
return view;
}
}
Ответы (1 шт):
Автор решения: Wlad
→ Ссылка
Если я правильно понял, то вы хотите "передать объект класса в одно легкое движение, а не каждое поле передавать".
Тут вам поможет интерфейс Serializable
№1
ваш класс Accounts должен иметь этот интерфейс
Accounts implements Serializable
№2
классическое ключ-значение в putExtra
about.putExtra("myAcc", oneAccount);
№3
а забираем данные уже чуть-чуть по другому
Accounts i = getIntent().getExtras().getSerializableExtra("myAcc");
так же можно наследовать класс от Parcelable, но там надо еще переписывать методы.
p.s. возможны ошибки, писал от руки.