我正在使用我使用我的计数器的自定义适配器。查看代码。在计数器中我添加了一个TextView来显示,两个按钮来添加或删除。 您可以弄清楚我正在尝试设计典型的购物车:您可以在哪里添加或删除商品。请检查以下代码
public class MyCustom extends BaseAdapter{
static class ViewHolder{
TextView tv1_price,tv2_cgory,tv3_prod,tv4_clog;
TextView tv6_counter;
ImageView imv1,imv2;
Button btn2Minus,btn3Plus;
public int count=0;
}
private Context context;
private static LayoutInflater layoutInflater=null;
String price[],categoryName[],productName[],catalogName[];
public MyCustom(Context context,String price[],String categoryName[],String productName[],String catalogName[]){
this.context=context;
this.price=price;
this.categoryName=categoryName;
this.productName=productName;
this.catalogName=catalogName;
}
@Override
public int getCount() {
return catalogName.length;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v=convertView;
final ViewHolder viewHolder;
if(v==null){
layoutInflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v=layoutInflater.inflate(R.layout.mycustom,parent,false);
viewHolder=new ViewHolder();
viewHolder.tv1_price=(TextView)v.findViewById(R.id.textView);
viewHolder.tv2_cgory=(TextView)v.findViewById(R.id.textView2);
viewHolder.tv3_prod=(TextView)v.findViewById(R.id.textView3);
viewHolder.tv4_clog=(TextView)v.findViewById(R.id.textView4);
viewHolder.imv1=(ImageView) v.findViewById(R.id.imageView);
viewHolder.imv2=(ImageView) v.findViewById(R.id.imageView2);
viewHolder.tv6_counter=(TextView)v.findViewById(R.id.textView6);
viewHolder.btn2Minus=(Button)v.findViewById(R.id.button2);
viewHolder.btn3Plus=(Button)v.findViewById(R.id.button3);
v.setTag(viewHolder);
}
else {
viewHolder=(ViewHolder)v.getTag();
}
viewHolder.tv1_price.setText(price[position]);
viewHolder.tv2_cgory.setText(categoryName[position]);
viewHolder.tv3_prod.setText(productName[position]);
viewHolder.tv4_clog.setText(catalogName[position]);
viewHolder.imv2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(v.getContext(), "Wait.......Checking Out", Toast.LENGTH_SHORT).show();
context.startActivity(new Intent(context,ShoppingCart.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)) ;
}
});
viewHolder.btn3Plus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
viewHolder.count++;
viewHolder.tv6_counter.setText(String.valueOf(viewHolder.count));
}
});
viewHolder.btn2Minus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(viewHolder.count>0) {
viewHolder.count--;
viewHolder.tv6_counter.setText(String.valueOf(viewHolder.count));
}
}
});
return v;
}
在这里,您可以看到逻辑从购物车添加或删除计数器(添加或删除项目)。但在这里我遇到了一个问题,不知道如何将计数器值(单个行)发送到其他活动通过意图以及如何接收它们。我希望你理解我的问题!!如果不在下面添加你的评论,我们深表感激。
答案 0 :(得分:1)
将值从intent
传递到另一个活动....
这里我编辑你的代码看看.......................
viewHolder.imv2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(v.getContext(), "Wait.......Checking Out", Toast.LENGTH_SHORT).show();
context.startActivity(new Intent(context,ShoppingCart.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK).putExtra("counter",counter)) ;
}
});
并在其他活动中获得价值..........
int counter=getIntent.getIntExtra(counter,0);//if counter have no value than it assign 0
享受编码..............................
答案 1 :(得分:1)
您可以按照以下答案解决:
您的代码:
context.startActivity(new Intent(context,ShoppingCart.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)) ;
替换MyCode:
context.startActivity(new Intent(context,ShoppingCart.class).putExtra("counter",viewHolder.count).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)) ;
答案 2 :(得分:1)
我建议以下步骤将计数器数据分享给您的下一个活动:
1 - 在MyCustom类中声明一个类变量:
int mCount=0;
2-修改如下代码以存储count的值:
viewHolder.btn3Plus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
viewHolder.count++;
mCount=viewHolder.count;
viewHolder.tv6_counter.setText(将String.valueOf(viewHolder.count));
}
});
viewHolder.btn2Minus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(viewHolder.count>0) {
viewHolder.count--;
mCount=viewHolder.count;
viewHolder.tv6_counter.setText(String.valueOf(viewHolder.count));
}
}
});
3-将mCount的值发送为IntentExtra,如:
viewHolder.imv2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(v.getContext(), "Wait.......Checking Out", Toast.LENGTH_SHORT).show();
Intent intent=new Intent(context, ShoppingCart.class);
intent.putExtra("CounterValue", mCount);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent) ;
}
});
4-然后在ShoppingCart Activity的OnCreate上获取mCount的值,如:
int CountExtra = getIntent().getIntExtra("CounterValue, 0);