для какого черта внедрять Parcelable?
он переходит к адаптеру String[] поэтому
- получить элемент (строка) в позиции
- создать намерение
- поставь как лишнее
- начать деятельность
- в активности получить доп.
для хранения списка продуктов вы можете использовать здесь HashMap (например, как СТАТИЧЕСКИЙ объект)
пример класса, описывающего продукт:
public class Product {
private String _name;
private String _description;
private int _id
public Product(String name, String description,int id) {
_name = name;
_desctription = description;
_id = id;
}
public String getName() {
return _name;
}
public String getDescription() {
return _description;
}
}
Product dell = new Product("dell","this is dell",1);
HashMap<String,Product> _hashMap = new HashMap<>();
_hashMap.put(dell.getName(),dell);
затем вы переходите к набору ключей адаптера как:
String[] productNames = _hashMap.keySet().toArray(new String[_hashMap.size()]);
когда в адаптере вы возвращаете представление, вы устанавливаете слушателя, например, так:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Context context = parent.getContext();
String itemName = getItem(position)
someView.setOnClikListener(new MyOnClickListener(context, itemName));
}
private class MyOnClickListener implements View.OnClickListener {
private String _itemName;
private Context _context
public MyOnClickListener(Context context, String itemName) {
_context = context;
_itemName = itemName;
}
@Override
public void onClick(View view) {
//------listener onClick example method body ------
Intent intent = new Intent(_context, SomeClassToHandleData.class);
intent.putExtra(key_to_product_name,_itemName);
_context.startActivity(intent);
}
}
затем в другой деятельности:
@Override
public void onCreate(Bundle) {
String productName = getIntent().getExtra(key_to_product_name);
Product product = _hashMap.get(productName);
}
*key_to_product_name — общедоступная статическая строка, которая служит ключом для дополнительных
пс. извините за опечатку я торопился :) ps2. это должно дать вам представление о том, как это сделать ps3. когда у меня будет больше времени я добавлю подробное описание
МОЙ КОММЕНТАРИЙ:
- НЕ ИСПОЛЬЗУЙТЕ УТВЕРЖДЕНИЕ ПЕРЕКЛЮЧЕНИЯ
- НЕ СОЗДАВАЙТЕ ОТДЕЛЬНЫЕ ДЕЙСТВИЯ ДЛЯ КАЖДОГО ПРОДУКТА (ТРЕБУЕТСЯ ТОЛЬКО ОДИН)
person
ceph3us
schedule
11.07.2015