RecyclerView
가있다
Itemname
로 항목을 표시하는 곳
Itemrate
및+/-버튼으로 각각 증가 및 감소 된 항목의 수량입니다.
이것은 내
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
- 답변 # 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; } }
- Recycler View Android에 Admob 네이티브 고급 광고를 배치하는 방법은 무엇입니까?
- 갤러리 비디오 섬네일이 Android recyclerview에서 매우 느리게로드됩니다.
- android : Recycler보기의 응답에서 비디오 또는 이미지를 표시하는 방법은 무엇입니까?
- android : NestedScrollView Freez의 여러 RecyclerView UI가 SetAdapter를 시도 할 때
- java : RecyclerView ItemClickListener가 OnBindViewHolder에서 작동하지 않습니다.
- android scrollview 대신 listview를 사용하는 방법
- recyclerView 어댑터의 성능 향상 및 향상 방법 (Android Java)
- Android RecyclerView 어댑터에서 데이터를 캐시 할 수 있나요?
- java : XML 레이아웃이 R.layout에 나타나지 않습니다.
- java : Recyclerview는 Android에서 채팅 화면의 다음 왼쪽보기로 이동하지 않고 같은쪽에 목록을 표시합니다.
TeaListPOJO
에 추가 속성 추가 모델 말count
+/- 버튼을 누르면 텍스트보기에서 개수를 설정 한 것처럼 모델에서 개수를 설정해야합니다. 따라서 어댑터에는TeaListPOJO
가 있습니다. 명부.TeaListPOJO
목록을 서버로 전송하려는 경우 표시 또한 카운트 목록이 있습니다.