gpt4 book ai didi

android - 如何从 Recyclerview 获取每个项目值并将其存储在本地数据库中

转载 作者:行者123 更新时间:2023-11-29 02:19:53 25 4
gpt4 key购买 nike

1.我有类似电子购物车/食品订购项目的回收 View ,我在其中使用(+)和(-)按钮添加每个项目的数量,然后我如何获得每个项目的值(value)与项目名称、元素率和数量。

2.如何将从回收站 View 中获取的值存储在本地数据库中。

//这是我的适配器类

package com.myapplication.chaiwalacustomer.adapter;

import android.content.Context;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

import com.myapplication.chaiwalacustomer.R;
import com.myapplication.chaiwalacustomer.model.TeaListPOJO;
import com.myapplication.chaiwalacustomer.utils.AppConstants;
import com.myapplication.chaiwalacustomer.utils.Base64;

import java.util.List;


public class TeaListAdapter extends RecyclerView.Adapter<TeaListAdapter.MyViewHolder> {

//private int num=0;
private List<TeaListPOJO> teaItemList;
private Context mContext;
private Cursor cursor;

public class MyViewHolder extends RecyclerView.ViewHolder {
public TextView tvitemName, tvitemRate,number;
public ImageView ivItemImg;
public Button btnIncrease,btnDecrease;
RecyclerView.ViewHolder holder;


public MyViewHolder(View view) {
super(view);
tvitemName = (TextView) view.findViewById(R.id.txt_item_name);
tvitemRate = (TextView) view.findViewById(R.id.txt_item_price);
ivItemImg= (ImageView) view.findViewById (R.id.iv_item);
number=(TextView) view.findViewById (R.id.integer_number);
btnIncrease =view.findViewById(R.id.btn_increase);
btnDecrease = view.findViewById(R.id.btn_decrease);

}
}


public TeaListAdapter(List<TeaListPOJO> teaItemList) {
this.mContext=mContext;
this.cursor=cursor;
this.teaItemList = teaItemList;
}

@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.rv_placeorder_items, parent, false);

return new MyViewHolder (itemView);
}

@Override
public void onBindViewHolder(final MyViewHolder holder, final int position) {

TeaListPOJO tealist = teaItemList.get(position);
holder.tvitemName.setText(tealist.getItemName ());
holder.tvitemRate.setText(AppConstants.INDIAN_RUPEE_SIGN.concat (tealist.getItemRate ()));
// holder.number.setText (tealist.getQty ());
//num=Integer.parseInt (tealist.getQty ());

//String title = ((TextView) recyclerView.findViewHolderForAdapterPosition(position).itemView.findViewById(R.id.title)).getText().toString();

holder.btnIncrease.setOnClickListener (new View.OnClickListener () {
@Override
public void onClick(View view) {
int num=0;
try{

num = Integer.parseInt(holder.number.getText().toString());
}catch(Exception e) {
num = 0;
}
num++;
holder.number.setText ((num+""));

notifyDataSetChanged();
}
});
holder.btnDecrease.setOnClickListener (new View.OnClickListener () {
@Override
public void onClick(View view) {
int num=0;
try{

num = Integer.parseInt(holder.number.getText().toString());
}catch(Exception e) {
num = 0;
}
if(num>0)
num--;
holder.number.setText ((num+""));
notifyDataSetChanged();
}
});

byte[] decodedString = new byte[0];
try {

decodedString = Base64.decode(tealist.getImageStr(), Base64.DEFAULT);
// tenantModelPOJO.setLogo(decodedString);
Bitmap bmp = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
holder.ivItemImg.setImageBitmap(Bitmap.createScaledBitmap(bmp, 50, 50,false));
} catch (Exception e) {
e.printStackTrace();
}

}




@Override
public int getItemCount() {

return teaItemList.size();
}
}

//这是我的 Activity

public class PlaceOrderActivity extends AppCompatActivity implements AppConstants, View.OnClickListener, WLAPIcalls.OnAPICallCompleteListener {

private List<TeaListPOJO> teaList = new ArrayList<> ();
private RecyclerView recyclerView;
private TeaListAdapter mAdapter;
private View view;

int count=0;


private Context mContext = PlaceOrderActivity.this;
private int itemCount;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
setContentView (R.layout.activity_place_order);

setRecyclerView (view);
getallTeaItems();
// prepareMovieData();
}



List<TeaListPOJO> getTeaItemList(String str) {
Gson gson = new Gson ();
Type listType = new TypeToken<List<TeaListPOJO>> () {
}.getType ();
List<TeaListPOJO> myModelList = gson.fromJson (str, listType);
return myModelList;
}

private List<TeaListPOJO> getallTeaItems() {
if (new AppCommonMethods (mContext).isNetworkAvailable ()) {
WLAPIcalls mAPIcall = new WLAPIcalls (mContext, getString (R.string.getTeaItem), this);
mAPIcall.GetTeaItemList ();
} else {
Toast.makeText (mContext, R.string.no_internet, Toast.LENGTH_SHORT).show ();
}
return null;
}

void setRecyclerView(View view){
recyclerView = (RecyclerView) findViewById (R.id.recycler_view);

mAdapter = new TeaListAdapter (teaList);
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager (getApplicationContext ());
recyclerView.setLayoutManager (mLayoutManager);
recyclerView.setItemAnimator (new DefaultItemAnimator ());
recyclerView.setAdapter (mAdapter);
}

@Override
public void onClick(View view) {
for(int i=0;i<itemCount;i++)
{
view=recyclerView.getChildAt(i); // This will give you entire row(child) from RecyclerView
if(view!=null)
{
EditText editText= (EditText) view.findViewById(R.id.et_time);
String text=editText.getText().toString();
if (text.equals(i)){
// Do your stuff, after comparison
}
}
}

}

@Override
public void onAPICallCompleteListner(Object item, String flag, String result) throws JSONException {
if (getString (R.string.getTeaItem).equals (flag)) {
Log.e ("Result", result);
teaList = getTeaItemList (result);
setRecyclerView (view);

}

}
}

最佳答案

创建变量如HashMap<Object,Integer>的selectedMap类型。一旦你增加计数然后使用条件

HashMap<Object,Integer> selectedMap = new HashMap();

//In increase count onClick
if(selectedMap.containsKey(teaList)) {
int prevCount = selectedMap.get(teaList);
selectedMap.put(teaList, prevCount++);
} else {
selectedMap.put(teaList, 1);
}

//In decrease count onClick
if(selectedMap.containsKey(teaList)) {
int prevCount = selectedMap.get(teaList);
if(prevCount == 1)
selectedMap.remove(teaList);
else
selectedMap.put(teaList, prevCount--);
}

现在这张 map 包含所有选定的项目。当您想将项目存储在数据库中时,只需迭代此 HashMap,每个项目的值将为您提供项目计数。

关于将数据存储到数据库中,首先确定您要使用的数据库类型,然后寻求如何根据您的要求插入和提取数据的帮助。

关于android - 如何从 Recyclerview 获取每个项目值并将其存储在本地数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56963736/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com