实际上我有一个过滤后的数组。我想将ArrayList
存储在另一个ArrayList
中,但它不会添加。我将一个模型保存到另一个模型。因为我只想要filteredlist
。
public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.ComboViewHolder> {
private ArrayList<Products> catList;
private ArrayList<FilteredCategorymodel> filterList;
Context context;
int count = 0;
// ArrayList<FilteredCategorymodel> filterModel;
SharedPrefrences sharedPrefrences;
boolean isClicked = true;
public ProductAdapter(Context context, ArrayList<Products> catList) {
this.catList = catList;
this.context = context;
}
@Override
public ComboViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext()).
inflate(R.layout.combo_list_item, parent, false);
return new ComboViewHolder(itemView);
}
@Override
public void onBindViewHolder(final ComboViewHolder holder, final int position) {
final Products products = catList.get(position);
Log.e("Products Items::::", products + "");
holder.mProductName.setText(products.getProduct_name());
holder.mProductDescription.setText(products.getProduct_description());
holder.mDescription.setText(products.getRecipe_method());
holder.mPrice.setText(products.getPrice());
Picasso.with(context)
.load(Constants.Image_Path + products.getProduct_image())
.placeholder(R.drawable.common_signin_btn_icon_focus_light) // optional
.error(R.drawable.common_signin_btn_icon_dark) // optional
.into(holder.mPImage);
holder.mPImage.setTag(holder);
holder.btnIncrese.setTag(position);
holder.btnDecrese.setTag(position);
holder.btnIncrese.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int mPosition = (int) v.getTag();
Log.e("mPosition~", mPosition + "~" + position);
count = catList.get(mPosition).getCount() + 1;
for (int i = 0; i < catList.size(); i++) {
filterList = new ArrayList<FilteredCategorymodel>();
filterList.add(catList.get(i));
}
basketCount = basketCount + 1;
catList.get(mPosition).setCount(count);
holder.mQuantity.setText(Integer.toString(products.getCount()));
ProductActivity.updateSum(basketCount);
}
});
holder.btnDecrese.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// int position = (Integer) v.getTag();
int mPosition = (int) v.getTag();
if (catList.get(mPosition).getCount() < 1) {
holder.mQuantity.setText("0");
} else {
count = catList.get(mPosition).getCount() - 1;
basketCount = basketCount - 1;
catList.get(position).setCount(count);
Log.e("COUNT::::", count + "");
holder.mQuantity.setText(Integer.toString(products.getCount()));
ProductActivity.updateSum(basketCount);
// sharedPrefrences = new SharedPrefrences();
// sharedPrefrences.addFavorite(context, catList.get(mPosition));
// Toast.makeText(context, "Fave",
// Toast.LENGTH_SHORT).show();
// Log.e("COUNT::::", count + "");
}
}
});
}
@Override
public int getItemCount() {
return catList.size();
}
答案 0 :(得分:1)
因为每次在循环中创建新的arraylist。 这样做。
$("#submit").on('click', function(){
var flag;
$('.questions')
.each(function(){
flag = false;
if(!$('.question10 input[type="checkbox"]' .is(':checked'))
return false;
flag = true;
});
if (flag)
alert("submitted");
else
alert("Not submitted");
});
答案 1 :(得分:1)
从这个太少的信息来看,我猜你试图为你的filterList
添加一些值。问题是,每次你经历循环时,你正在创建一个新的ArrayList
:
for (int i = 0; i < catList.size(); i++) {
filterList = new ArrayList<FilteredCategorymodel>();
filterList.add(catList.get(i));
}
你必须首先初始化filterList
,不要在循环中执行此操作。你的循环必须如下所示:
for (int i = 0; i < catList.size(); i++) {
filterList.add(catList.get(i));
}
您尝试达到的目标也很重要。如果您只想在单击按钮时填写新列表,则在循环外的onButtonClick
内初始化您的列表。但是,如果您想要一次又一次地填充该列表并且值应该保持不变,那么在您的构造函数中初始化列表。
但是,在您的情况下,这不起作用,因为filterList
来自类型“FilteredCategoryModel”,而catList来自类型“产品”。您无法使用错误的类型填充ArrayList。
答案 2 :(得分:0)
如果您想将一个ArrayList
数据添加到另一个{0}},则不需要使用循环,请使用addAll()
ArrayList
。请查看以下示例。
ArrayList<YourClass> a = new ArrayList<>();
ArrayList<YourClass> b = new ArrayList<>();
b.addAll(a);
&#13;
b
的所有数据添加到a
。