Java 如何从recyclerVIew viewHolder onClick内更改片段(recyclerVIew外部)中的文本
这就是我需要的。 删除一个项目时,需要更新总值。 我设法删除了该项,并在AdapterViewHolder中以json响应的形式获得了总值。不知道如何设置更新片段中的文本 这是我的车碎片 Cart.java 公共类Cart扩展片段{Java 如何从recyclerVIew viewHolder onClick内更改片段(recyclerVIew外部)中的文本,java,android,android-recyclerview,fragment,Java,Android,Android Recyclerview,Fragment,这就是我需要的。 删除一个项目时,需要更新总值。 我设法删除了该项,并在AdapterViewHolder中以json响应的形式获得了总值。不知道如何设置更新片段中的文本 这是我的车碎片 Cart.java 公共类Cart扩展片段{ public Cart() { // Required empty public constructor } Context context; Activity activity; List<GetDataAdapter> GetDataAda
public Cart() {
// Required empty public constructor
}
Context context;
Activity activity;
List<GetDataAdapter> GetDataAdapter1;
RecyclerView recyclerView;
RecyclerView.LayoutManager recyclerViewlayoutManager;
RecyclerView.Adapter recyclerViewadapter;
String GET_JSON_DATA_HTTP_URL = "http://192.168.0.106/slbros/index.php/get/cart?p_d_id=12&lan=en";
String Total_URL = "http://192.168.0.106/slbros/index.php/get/total?p_d_id=12";
String JSON_CDID = "cart_dtl_id";
String JSON_IMG_URL = "img_url";
String JSON_QTY = "qty";
String JSON_NAME = "name";
String JSON_UNIT = "unit";
String JSON_PRICE = "price";
String JSON_P_ID = "product_id";
JsonArrayRequest jsonArrayRequest;
RequestQueue requestQueue;
ProgressBar progressBar;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View v = inflater.inflate(R.layout.fragment_cart, container, false);
TextView total_tv = (TextView)v.findViewById(R.id.total_payment_value);
//recycler view
GetDataAdapter1 = new ArrayList<>();
recyclerView = (RecyclerView) v.findViewById(R.id.rv_cart_list);
progressBar = (ProgressBar) v.findViewById(R.id.progressBar2);
recyclerView.setHasFixedSize(true);
recyclerViewlayoutManager = new LinearLayoutManager(getContext());
recyclerView.setLayoutManager(recyclerViewlayoutManager);
progressBar.setVisibility(View.VISIBLE);
JSON_DATA_WEB_CALL();
return v;
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
//you can set the title for your toolbar here for different fragments different titles
getActivity().setTitle("Cart");
}
public void JSON_DATA_WEB_CALL() {
jsonArrayRequest = new JsonArrayRequest(GET_JSON_DATA_HTTP_URL,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
progressBar.setVisibility(View.GONE);
JSON_PARSE_DATA_AFTER_WEBCALL(response);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
progressBar.setVisibility(View.GONE);
Toast.makeText(getContext(), "some error....", Toast.LENGTH_SHORT).show();
}
}
);
requestQueue = Volley.newRequestQueue(getContext());
jsonArrayRequest.setRetryPolicy(new DefaultRetryPolicy(60000, 0, 1));
requestQueue.add(jsonArrayRequest);
}
public void JSON_PARSE_DATA_AFTER_WEBCALL(JSONArray array) {
for (int i = 0; i < array.length(); i++) {
GetDataAdapter GetDataAdapter2 = new GetDataAdapter();
JSONObject json = null;
try {
json = array.getJSONObject(i);
GetDataAdapter2.setImg_url(json.getString(JSON_IMG_URL));
GetDataAdapter2.setName(json.getString(JSON_NAME));
GetDataAdapter2.setPrice(json.getInt(JSON_PRICE));
GetDataAdapter2.setProduct_id(json.getInt(JSON_P_ID));
GetDataAdapter2.setCart_dtl_id(json.getInt(JSON_CDID));
GetDataAdapter2.setProduct_qty(json.getInt(JSON_QTY));
} catch (JSONException e) {
e.printStackTrace();
}
GetDataAdapter1.add(GetDataAdapter2);
}
recyclerViewadapter = new RecyclerViewAdapterCart(GetDataAdapter1, getContext());
recyclerView.setAdapter(recyclerViewadapter);
}}
公共购物车(){
//必需的空公共构造函数
}
语境;
活动;
列出GetDataAdapter1;
回收视图回收视图;
RecyclerView.LayoutManager recyclerViewlayoutManager;
适配器RecycleWebAdapter;
字符串GET_JSON_DATA_HTTP_URL=”http://192.168.0.106/slbros/index.php/get/cart?p_d_id=12&lan=en";
字符串总URL=”http://192.168.0.106/slbros/index.php/get/total?p_d_id=12";
字符串JSON\u CDID=“购物车\u dtl\u id”;
字符串JSON\u IMG\u URL=“IMG\u URL”;
字符串JSON_QTY=“QTY”;
字符串JSON_NAME=“NAME”;
字符串JSON_UNIT=“UNIT”;
字符串JSON_PRICE=“PRICE”;
字符串JSON_P_ID=“product_ID”;
JsonArrayRequest JsonArrayRequest;
请求队列请求队列;
ProgressBar ProgressBar;
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
//为该碎片膨胀布局
视图v=充气机。充气(R.layout.fragment_推车,容器,错误);
TextView总电视=(TextView)v.findViewById(R.id.total\u payment\u value);
//回收者视图
GetDataAdapter1=新的ArrayList();
recyclerView=(recyclerView)v.findViewById(R.id.rv\u cart\u list);
progressBar=(progressBar)v.findViewById(R.id.progressBar2);
recyclerView.setHasFixedSize(true);
recyclerViewlayoutManager=新的LinearLayoutManager(getContext());
recyclerView.setLayoutManager(recyclerViewlayoutManager);
progressBar.setVisibility(View.VISIBLE);
JSON_DATA_WEB_CALL();
返回v;
}
@凌驾
已创建视图上的公共void(视图,@Nullable Bundle savedInstanceState){
super.onViewCreated(视图,savedInstanceState);
//您可以在此处为不同的片段或不同的标题设置工具栏的标题
getActivity().setTitle(“购物车”);
}
public void JSON_DATA_WEB_CALL(){
jsonArrayRequest=新的jsonArrayRequest(获取JSON数据、HTTP URL、,
新的Response.Listener(){
@凌驾
公共void onResponse(JSONArray响应){
progressBar.setVisibility(View.GONE);
JSON在WEBCALL之后解析数据(响应);
}
},
新的Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
progressBar.setVisibility(View.GONE);
Toast.makeText(getContext(),“某些错误…”,Toast.LENGTH_SHORT.show();
}
}
);
requestQueue=Volley.newRequestQueue(getContext());
setRetryPolicy(新的DefaultRetryPolicy(60000,0,1));
add(jsonArrayRequest);
}
public void JSON\u解析\u数据\u WEBCALL之后(JSONArray数组){
对于(int i=0;i
这是我的适配器
RecycleServiceAdapterCart.java
public class RecyclerViewAdapterCart extends RecyclerView.Adapter<RecyclerViewAdapterCart.ViewHolder> {
JsonArrayRequest jsonArrayRequest ;
RequestQueue requestQueue ;
String baseURL = "http://192.168.0.106/slbros/index.php/";
Context context;
Activity activity;
List<GetDataAdapter> getDataAdapter;
ImageLoader imageLoader1;
public RecyclerViewAdapterCart(List<GetDataAdapter> getDataAdapter, Context context) {
super();
this.getDataAdapter = getDataAdapter;
this.context = context;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.cart_list_item, parent, false);
ViewHolder viewHolder = new ViewHolder(v);
return viewHolder;
}
@Override
public void onBindViewHolder(ViewHolder Viewholder, int position) {
GetDataAdapter getDataAdapter1 = getDataAdapter.get(position);
imageLoader1 = ServerImageParseAdapter.getInstance(context).getImageLoader();
imageLoader1.get(getDataAdapter1.getImg_url(),
ImageLoader.getImageListener(
Viewholder.product_image_view,//Server Image
R.mipmap.ic_launcher,//Before loading server image the default showing image.
android.R.drawable.ic_dialog_alert //Error image if requested image dose not found on server.
)
);
Viewholder.product_image_view.setImageUrl(getDataAdapter1.getImg_url(), imageLoader1);
Viewholder.product_name_TextView.setText(getDataAdapter1.getName()+" - "+String.valueOf(getDataAdapter1.getProduct_qty()));
Viewholder.product_price_qty_TextView.setText(getDataAdapter1.getPrice()+".00 Rs X "+String.valueOf(getDataAdapter1.getProduct_qty()));
Viewholder.product_t_price_TextView.setText(String.valueOf(getDataAdapter1.getProduct_qty()*getDataAdapter1.getPrice())+".00 Rs");
Viewholder.product_id_TextView.setText(String.valueOf(getDataAdapter1.getProduct_id()));
Viewholder.cart_dtl_id_TextView.setText(String.valueOf(getDataAdapter1.getCart_dtl_id()));
}
@Override
public int getItemCount() {
return getDataAdapter.size();
}
class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
public NetworkImageView product_image_view;
public TextView product_name_TextView;
public TextView product_price_qty_TextView;
public TextView product_t_price_TextView;
public TextView product_id_TextView;
public TextView cart_dtl_id_TextView;
public Button p_cancel_btn;
public ViewHolder(View itemView) {
super(itemView);
product_image_view = (NetworkImageView) itemView.findViewById(R.id.item_image1);
product_name_TextView = (TextView) itemView.findViewById(R.id.product_name);
product_price_qty_TextView = (TextView) itemView.findViewById(R.id.p_qty_price);
product_t_price_TextView = (TextView) itemView.findViewById(R.id.p_t__price);
product_id_TextView = (TextView) itemView.findViewById(R.id.product_id_tv);
cart_dtl_id_TextView = (TextView) itemView.findViewById(R.id.cart_dtl_id_tv);
p_cancel_btn = (Button)itemView.findViewById(R.id.p_cancel_btn);
// set item view
p_cancel_btn.setOnClickListener(this);
}
@Override
public void onClick(final View v) {
String str = product_name_TextView.getText().toString();
//Toast.makeText(v.getContext(), str, Toast.LENGTH_SHORT).show();
String cart_dtl_id = cart_dtl_id_TextView.getText().toString();
String url = baseURL + "delete/select?cart_dtl_id="+cart_dtl_id;
jsonArrayRequest = new JsonArrayRequest(url,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
//progressBar.setVisibility(View.GONE);
Toast.makeText(v.getContext(), "response -- " + response, Toast.LENGTH_LONG).show();
// here, I have to change the total TextView in Fragment
// Total_TextView.setText("1000rs")
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(v.getContext(), "error", Toast.LENGTH_LONG).show();
}
}
);
requestQueue = Volley.newRequestQueue(v.getContext());
jsonArrayRequest.setRetryPolicy(new DefaultRetryPolicy(60000,0,1));
requestQueue.add(jsonArrayRequest);
getDataAdapter.remove(getAdapterPosition());
notifyItemRemoved(getAdapterPosition());
notifyItemRangeChanged(getAdapterPosition(),getDataAdapter.size());
}
}}
公共类RecycleServiceAdapterCart扩展了RecyclerView.Adapter{
JsonArrayRequest JsonArrayRequest;
请求队列请求队列;
字符串baseURL=”http://192.168.0.106/slbros/index.php/";
语境;
活动;
列出getDataAdapter;
图像加载器图像加载器1;
公共RecycleServiceAdapterCart(列表getDataAdapter,上下文){
超级();
this.getDataAdapter=getDataAdapter;
this.context=上下文;
}
@凌驾
public ViewHolder onCreateViewHolder(视图组父级,int-viewType){
视图v=LayoutInflater.from(parent.getContext()).flate(R.layout.cart\u list\u项目,parent,false);
视窗夹持器视窗夹持器=新视窗夹持器(v);
返回视图持有者;
}
@凌驾
公共无效onBindViewHolder(ViewHolder ViewHolder,int位置){
GetDataAdapter getDataAdapter1=GetDataAdapter.get(位置);
imageLoader1=ServerImageParseAdapter.getInstance(上下文).getImageLoader();
imageLoader1.get(getDataAdapter1.getImg_url(),
ImageLoader.getImageListener(
Viewholder.product\u image\u视图,//服务器映像
R.mipmap.ic_启动器,//在加载服务器映像之前,默认显示映像。
android.R.drawable.ic_对话框_警报//如果在服务器上找不到请求的图像,则显示错误图像。
)
);
Viewholder.product\u image\u view.setImageUrl(getDataAdapter1.getImg\u url(),imageLoader1);
Viewholder.product_name_TextView.setText(getDataAdapter1.getName()+“-”+String.valueOf(getDataAdapter1.getProduct_qty());
Viewholder.product\u price\u qty\u TextView.setText(getDataAdapter1.getPrice()+“.00 Rs X”+String.valueOf(getDataAdapter1.getProduct\u qty());
Viewholder.product\t\u price\u TextView.setText(String.valueOf(getDataAdapter1.getProduct\u qty()*getDataAdapter1.getPrice())+“.00 Rs”);
Viewholder.product_id_TextView.setText(String.valueOf(getDataAdapter1.getProduct_id());
Viewholder.cart\u dtl\u id\u TextView.setText(Str
public interface ItemsChangedListener {
void onItemsChanged(int sum);
}
public void setItemsChangedListener(ItemsChangedListener listener) {
this.itemsChangedListener = listener;
}
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
//progressBar.setVisibility(View.GONE);
// Calc here the Value if you can.
if(listener != null) listener.onItemsChanged(sum);
}
@override
public void onItemsChanged(int sum) {
//Update TextView
}