>

RecyclerView 가있다   Itemname 로 항목을 표시하는 곳 Itemrate+/-버튼으로 각각 증가 및 감소 된 항목의 수량입니다.

그러나 pyzwyz의 각 항목에서 모든 값을 가져오고 싶습니다.  서버로 보내거나 로컬 데이터베이스에 저장하여 어떻게 달성 할 수 있습니까?

이것은 내 RecyclerView 입니다  수업

Adapter

이것은 내 public class TeaListAdapter extends RecyclerView.Adapter<TeaListAdapter.MyViewHolder> { //private int num=0; private List<TeaListPOJO> teaItemList; private Context mContext; private Cursor cursor; int comboCount; HashMap<Object,Integer> selectedMap = new HashMap (); private String ItemName; private String itemrate; private String qty; public class MyViewHolder extends RecyclerView.ViewHolder { public TextView tvitemName, tvitemRate,tvcount; //number public ImageView ivItemImg,ivPlus,ivMinus; 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); ivPlus=(ImageView) view.findViewById (R.id.row_view_final_order_iv_plus); ivMinus=(ImageView) view.findViewById (R.id.row_view_final_order_iv_minus); tvcount=(TextView) view.findViewById (R.id.row_view_final_order_tv_count); } } 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.ivPlus.setOnClickListener (new View.OnClickListener () { @Override public void onClick(View view) { int count=0; try{ count = Integer.parseInt(holder.tvcount.getText().toString()); } catch(Exception e) { count = 0; } //count++; count = Integer.parseInt(holder.tvcount.getText().toString()); holder.tvcount.setText(String.valueOf(count+ 1)); } }); holder.ivMinus.setOnClickListener (new View.OnClickListener () { @Override public void onClick(View view) { int count=0; try{ count = Integer.parseInt(holder.tvcount.getText().toString()); } catch(Exception e) { count = 0; } if(count>0) { //count--; count = Integer.parseInt (holder.tvcount.getText ().toString ()); holder.tvcount.setText (String.valueOf (count - 1)); } } }); holder.itemView.setOnClickListener (new View.OnClickListener () { @Override public void onClick(View view) { } }); /* Intent intent = new Intent (mContext, PlaceOrderActivity.class); // intent.putExtra("quantity",Integer.parseInt(quantity.getText().toString())); intent.putExtra ("quantity", qty); intent.putExtra ("item", ItemName); intent.putExtra ("itemrate", itemrate); ItemName = holder.tvitemName.getText().toString(); qty = holder.tvcount.getText().toString(); itemrate=holder.tvitemRate.getText ().toString (); Log.e("rate",itemrate); Log.e("qty",qty);*/ 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; private Button btnPlaceorder; EditText edtmsg; public String str; private Context mContext = PlaceOrderActivity.this; private int itemCount; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate (savedInstanceState); setContentView (R.layout.activity_place_order); str=getIntent ().getStringExtra ("quantity"); edtmsg= (EditText) view.findViewById (R.id.et_message); edtmsg.setText (str); setRecyclerView (view); getallTeaItems (); } 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) { } @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); } } }

  • 답변 # 1

    TeaListPOJO 에 추가 속성 추가  모델 말 count  +/- 버튼을 누르면 텍스트보기에서 개수를 설정 한 것처럼 모델에서 개수를 설정해야합니다. 따라서 어댑터에는 TeaListPOJO 가 있습니다.  명부. TeaListPOJO 목록을 서버로 전송하려는 경우 표시  또한 카운트 목록이 있습니다.

  • 답변 # 2

    어댑터에서 DB의 값을 변경하기 위해 API에 대한 호출을 설정하십시오. 전체 데이터를 전달할 필요는 없습니다. 일반적으로 URL에 id를 전달하여보고있는 하나의 객체 만 업데이트 할 수 있습니다. 예 : https : //hostname.domain/api/object/ID PUT 요청을 사용하여 해당 행에있는 개체의 정보를 전달하십시오.

    이 백엔드를 생성하는 경우 모든 행에 대한 전체 데이터 세트를 전달하는 것이 이상적인 솔루션이 아니므로 이것을 설정하는 것이 좋습니다.

    이것들이 처음에는 존재하지 않고 모두 앱에 존재하여 생성 된 경우 주요 활동에 버튼을 가지고 목록을 저장 한 다음 전체 목록을 API 호출에 전달하면 대부분의 경우 JSON으로 데이터를 구문 분석합니다. 여기서는 후자가 클래스에서 이러한 객체를 만든 경우라고 가정합니다.

  • 답변 # 3

    TeaListPOJO  또한 count 를 저장하는 필드가 필요합니다 . count 증가 또는 감소  사용자가 + 또는-버튼을 클릭하고 count 를 표시하면 값  직접 표시하지 않고 텍스트 뷰에 가치를 부여합니다.

    class TeaListPojo{
        private int count;
        .....
        public int getCount()
            return this.count
        }
        public void setCount(int count)
        {
            this.count = count;
        }
    }
    
    

  • 이전 android - AlertDialog 상자에서 이미지 URI를 아이콘으로 설정하려면 어떻게합니까?
  • 다음 php - 내부 서버 오류 500 simplexml_load_file