Android 如何将选定的listview持有者项添加到hashmap中
listview中有多个项目。我不知道如何将选定的listview持有者项目添加到hashmap中,然后将hashmap类型的Arraylist发送到另一个购物车活动。这是我的密码: 购物清单.javaAndroid 如何将选定的listview持有者项添加到hashmap中,android,listview,arraylist,hashmap,android-viewholder,Android,Listview,Arraylist,Hashmap,Android Viewholder,listview中有多个项目。我不知道如何将选定的listview持有者项目添加到hashmap中,然后将hashmap类型的Arraylist发送到另一个购物车活动。这是我的密码: 购物清单.java class ListViewAdapter extends BaseAdapter { Context mContext; LayoutInflater inflater; private List<ShoppingData> datalist = null;
class ListViewAdapter extends BaseAdapter {
Context mContext;
LayoutInflater inflater;
private List<ShoppingData> datalist = null;
private ArrayList<ShoppingData> arraylist;
public ListViewAdapter(Context context, List<ShoppingData> worldpopulationlist) {
mContext = context;
this.datalist = worldpopulationlist;
inflater = LayoutInflater.from(mContext);
this.arraylist = new ArrayList<ShoppingData>();
this.arraylist.addAll(worldpopulationlist);
}
public class ViewHolder {
ImageView icon;
TextView title,price;
EditText quantity;
Button add,remove;
}
@Override
public int getCount() {
return datalist.size();
}
@Override
public Object getItem(int position) {
return datalist.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View view, ViewGroup parent) {
imgUrl="http://www.domainname.com/images/Product/medium/";
final ViewHolder holder;
holder = new ViewHolder();
view=inflater.inflate(R.layout.shopping_list_item,null);
holder.icon=(ImageView)view.findViewById(R.id.image_shooping);
holder.title=(TextView)view.findViewById(R.id.text_shopping);
holder.price=(TextView)view.findViewById(R.id.price_shopping);
holder.quantity=(EditText)view.findViewById(R.id.item_cart);
holder.add=(Button)view.findViewById(R.id.add_cart);
holder.remove=(Button)view.findViewById(R.id.remove_item);
holder.title.setText(datalist.get(position).getName());
holder.price.setText("Price :"+datalist.get(position).getAmt()+" Rs");
Glide
.with(mContext)
.load(imgUrl+datalist.get(position).getImg())
.into(holder.icon);
holder.remove.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for(int i=0;i<contents.size();i++)
{
HashMap<String,String>map=new HashMap<String, String>(i);
map.remove("name");
map.remove("Amount");
map.remove("image");
map.remove("quantity");
map.remove("total");
map.remove("tax");
map.remove("discount");
map.remove("productId");
map.remove("bv");
map.remove("pv");
contents.set(i,map);
contents.remove(map);
Toast.makeText(Shopping_list.this, datalist.get(position).getName() + "Succesfully Removed ", Toast.LENGTH_SHORT).show();
holder.add.setVisibility(View.VISIBLE);
holder.remove.setVisibility(View.INVISIBLE);
holder.quantity.setText("");
holder.add.setText("Add to cart");
}
}
});
holder.add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
holder.quantity.setVisibility(View.VISIBLE);
if(holder.quantity.getText().toString().compareTo("")==0)
{
Toast.makeText(Shopping_list.this, " Enter Valid Quantity", Toast.LENGTH_SHORT).show();
}
else {
for (int i = 0; i < datalist.size() ; i++) {
HashMap<String, String> map = new HashMap<String, String>(i);
float netAmount = Float.parseFloat(datalist.get(position).getAmt()) * Float.parseFloat(holder.quantity.getText().toString());
String net = String.valueOf(netAmount);
map.put("name", datalist.get(position).getName());
map.put("Amount", datalist.get(position).getAmt());
map.put("image", imgUrl + datalist.get(position).getImg());
map.put("quantity", holder.quantity.getText().toString());
map.put("total", net);
map.put("tax",datalist.get(position).getTax());
map.put("discount",datalist.get(position).getDiscount());
map.put("productId",datalist.get(position).getProductId());
map.put("bv",datalist.get(position).getBv());
map.put("pv",datalist.get(position).getPv());
Toast.makeText(Shopping_list.this, datalist.get(position).getName() + " Succesfully Added to cart", Toast.LENGTH_SHORT).show();
holder.add.setText("Added");
holder.remove.setVisibility(View.VISIBLE);
contents.add(map);
System.out.println("haspmap" + contents);
System.out.println("contents size"+contents.size());
}
}
}
});
return view;
}
}
public class ShoppingData {
private String name;
private String amt;
private String img;
private String tax;
private String discount;
private String productId;
private String bv;
private String pv;
public ShoppingData(String nm, String amt ,String img,String tax,String discount,String productId,String bv,String pv) {
this.name = nm;
this.amt = amt;
this.img=img;
this.tax=tax;
this.discount=discount;
this.productId=productId;
this.bv=bv;
this.pv=pv;
}
public String getName() {
return this.name;
}
public String getAmt() {
return this.amt;
}
public String getImg()
{
return this.img;
}
public String getTax()
{
return this.tax;
}
public String getDiscount()
{
return this.discount;
}
public String getProductId()
{
return this.productId;
}
public String getBv()
{
return this.bv;
}
public String getPv()
{
return this.pv;
}
}
类ListViewAdapter扩展了BaseAdapter{
语境;
充气机;
私有列表datalist=null;
私有ArrayList ArrayList;
公共ListViewAdapter(上下文上下文,列表worldpopulationlist){
mContext=上下文;
this.datalist=worldpopulationlist;
充气器=从(mContext)开始的充气器;
this.arraylist=新的arraylist();
this.arraylist.addAll(worldpopulationlist);
}
公共类视图持有者{
图像视图图标;
文本视图标题、价格;
编辑文本数量;
按钮添加、删除;
}
@凌驾
public int getCount(){
返回datalist.size();
}
@凌驾
公共对象getItem(int位置){
返回datalist.get(位置);
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
@凌驾
公共视图getView(最终整数位置、视图视图、视图组父视图){
imgUrl=”http://www.domainname.com/images/Product/medium/";
最终持票人;
holder=新的ViewHolder();
视图=充气机。充气(右布局。购物清单项目,空);
holder.icon=(ImageView)view.findViewById(R.id.image\u shooping);
holder.title=(TextView)view.findViewById(R.id.text\u shopping);
holder.price=(TextView)view.findViewById(R.id.price\u shopping);
holder.quantity=(EditText)view.findViewById(R.id.item\u cart);
holder.add=(按钮)view.findViewById(R.id.add\u cart);
holder.remove=(按钮)view.findViewById(R.id.remove\u项);
holder.title.setText(datalist.get(position.getName());
holder.price.setText(“价格:”+datalist.get(position.getAmt()+“Rs”);
滑翔
.with(mContext)
.load(imgUrl+datalist.get(position.getImg())
.into(holder.icon);
holder.remove.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
对于(int i=0;i您所能做的只是将数据添加到ShoppingData
类的对象,而不是hashmap,然后将此对象传递到另一个活动。阅读它将教会您如何将对象从一个活动传递到另一个活动。
编辑:
当然,你可以创建像map
这样的散列图,很容易添加、发送和删除!请任何人给我任何解决方案。这个问题很难回答吗?不,但我正在做其他事情。如果我烤蛋糕给你吃,你不会学到任何东西!是的,我不是要代码,而是根据代码给我提示,因为我是s结束hashmap到另一个活动的arraylist。离开此活动时,请使用intent.putExtra(“mylist”,dataList);以intent的形式发送,如何确定选择了哪一行