提交11
This commit is contained in:
parent
97526598ea
commit
aaa8f7bb0d
|
@ -0,0 +1,67 @@
|
||||||
|
package com.example.myapplication.Adapter;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.ImageView;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import com.bumptech.glide.Glide;
|
||||||
|
import com.example.myapplication.R;
|
||||||
|
import com.example.myapplication.dao.ShoptrolleyResult;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class ShoppingTrolleyAdapter extends RecyclerView.Adapter<ShoppingTrolleyAdapter.ViewHolder> {
|
||||||
|
|
||||||
|
private List<ShoptrolleyResult.RowsBean> rowsBeans;
|
||||||
|
|
||||||
|
public ShoppingTrolleyAdapter(List<ShoptrolleyResult.RowsBean> rowsBeans) {
|
||||||
|
this.rowsBeans = rowsBeans;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||||
|
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.shopping_trolley_moban, parent, false);
|
||||||
|
return new ViewHolder(view);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
|
||||||
|
ShoptrolleyResult.RowsBean rowsBean = rowsBeans.get(position);
|
||||||
|
holder.textView103.setText(rowsBean.shopname);
|
||||||
|
holder.textView104.setText(rowsBean.shopguige);
|
||||||
|
holder.textView105.setText(String.valueOf(rowsBean.price));
|
||||||
|
holder.textView106.setText(String.valueOf(rowsBean.shopnumber));
|
||||||
|
|
||||||
|
// 加载图片,这里假设你使用 Glide 库
|
||||||
|
if (rowsBean.shoppicture != null) {
|
||||||
|
Glide.with(holder.itemView.getContext()).load(rowsBean.shoppicture).into(holder.imageView10);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemCount() {
|
||||||
|
return rowsBeans.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ViewHolder extends RecyclerView.ViewHolder {
|
||||||
|
TextView textView103;
|
||||||
|
TextView textView104;
|
||||||
|
TextView textView105;
|
||||||
|
TextView textView106;
|
||||||
|
ImageView imageView10;
|
||||||
|
|
||||||
|
public ViewHolder(@NonNull View itemView) {
|
||||||
|
super(itemView);
|
||||||
|
textView103 = itemView.findViewById(R.id.textView103);
|
||||||
|
textView104 = itemView.findViewById(R.id.textView104);
|
||||||
|
textView105 = itemView.findViewById(R.id.textView105);
|
||||||
|
textView106 = itemView.findViewById(R.id.textView106);
|
||||||
|
imageView10 = itemView.findViewById(R.id.imageView10);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -2,6 +2,8 @@ package com.example.myapplication;
|
||||||
|
|
||||||
import com.example.myapplication.dao.GoodsinformationResult;
|
import com.example.myapplication.dao.GoodsinformationResult;
|
||||||
import com.example.myapplication.dao.LoginResult;
|
import com.example.myapplication.dao.LoginResult;
|
||||||
|
import com.example.myapplication.dao.RecommendResult;
|
||||||
|
import com.example.myapplication.dao.ShoptrolleyResult;
|
||||||
import com.example.myapplication.dao.ShouyeshuiguoResult;
|
import com.example.myapplication.dao.ShouyeshuiguoResult;
|
||||||
import com.example.myapplication.dao.UserInformationResult;
|
import com.example.myapplication.dao.UserInformationResult;
|
||||||
import com.example.myapplication.dao.UserInformationResult2;
|
import com.example.myapplication.dao.UserInformationResult2;
|
||||||
|
@ -37,4 +39,11 @@ public interface Api {
|
||||||
@GET("system/vip/list")
|
@GET("system/vip/list")
|
||||||
Call<VipdataResult> getVipdata(@Header("Authorization") String token);
|
Call<VipdataResult> getVipdata(@Header("Authorization") String token);
|
||||||
|
|
||||||
|
@GET("system/recommend/list")
|
||||||
|
Call<RecommendResult> getRecommend(@Header("Authorization") String token);
|
||||||
|
|
||||||
|
@GET("system/shopcar/list")
|
||||||
|
Call<ShoptrolleyResult> getShoptrolley(@Header("Authorization") String token);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,19 +1,136 @@
|
||||||
package com.example.myapplication;
|
package com.example.myapplication;
|
||||||
|
|
||||||
|
import static android.content.Context.MODE_PRIVATE;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.SharedPreferences;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import android.util.Log;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.ImageView;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import com.bumptech.glide.Glide;
|
||||||
|
import com.example.myapplication.Utils.RetrofitUtils;
|
||||||
|
import com.example.myapplication.dao.RecommendResult;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import retrofit2.Call;
|
||||||
|
import retrofit2.Callback;
|
||||||
|
import retrofit2.Response;
|
||||||
|
|
||||||
public class FindFragment extends Fragment {
|
public class FindFragment extends Fragment {
|
||||||
|
|
||||||
|
private List<RecommendResult.RowsBean> list = new ArrayList<>();
|
||||||
|
private FindMyAdapter adapter;
|
||||||
|
private RecyclerView recyclerView;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
// Inflate the layout for this fragment
|
// Inflate the layout for this fragment
|
||||||
return inflater.inflate(R.layout.fragment_find, container, false);
|
View view = inflater.inflate(R.layout.fragment_find, container, false);
|
||||||
|
|
||||||
|
recyclerView = view.findViewById(R.id.recyclerView2); // 假设你的 RecyclerView 的 ID 是 recyclerView
|
||||||
|
adapter = new FindMyAdapter(list);
|
||||||
|
recyclerView.setAdapter(adapter);
|
||||||
|
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
|
||||||
|
|
||||||
|
SharedPreferences sharedPreferences = getActivity().getSharedPreferences("data", MODE_PRIVATE);
|
||||||
|
String token = sharedPreferences.getString("token", "");
|
||||||
|
Call<RecommendResult> recommendResultCall =
|
||||||
|
RetrofitUtils.getRetrofit("http://192.168.56.115:8080/").create(Api.class).getRecommend("Bearer " + token);
|
||||||
|
recommendResultCall.enqueue(new Callback<RecommendResult>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(Call<RecommendResult> call, Response<RecommendResult> response) {
|
||||||
|
RecommendResult recommendResult = response.body();
|
||||||
|
if (recommendResult != null) {
|
||||||
|
if (recommendResult.code == 200) {
|
||||||
|
// 清空原有数据
|
||||||
|
list.clear();
|
||||||
|
// 将新数据添加到列表中
|
||||||
|
for (RecommendResult.RowsBean rowsBean : recommendResult.rows) {
|
||||||
|
list.add(rowsBean);
|
||||||
|
}
|
||||||
|
adapter.notifyDataSetChanged();
|
||||||
|
} else if (recommendResult.code == 401) {
|
||||||
|
// 处理未授权的情况,例如提示用户重新登录
|
||||||
|
Log.e("FindFragment", "Unauthorized access");
|
||||||
|
} else {
|
||||||
|
// 处理其他错误情况
|
||||||
|
Log.e("FindFragment", "Error code: " + recommendResult.code);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 处理响应为空的情况
|
||||||
|
Log.e("FindFragment", "Response body is null");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Call<RecommendResult> call, Throwable t) {
|
||||||
|
// 处理网络错误或其他异常
|
||||||
|
t.printStackTrace();
|
||||||
|
Log.e("FindFragment", "Network error: " + t.getMessage());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return view;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
// 创建 FindMyAdapter 类
|
||||||
|
public class FindMyAdapter extends RecyclerView.Adapter<FindMyAdapter.ViewHolder> {
|
||||||
|
|
||||||
|
private List<RecommendResult.RowsBean> rowsBeans;
|
||||||
|
|
||||||
|
public FindMyAdapter(List<RecommendResult.RowsBean> rowsBeans) {
|
||||||
|
this.rowsBeans = rowsBeans;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||||
|
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.find_moban, parent, false);
|
||||||
|
return new ViewHolder(view);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBindViewHolder(ViewHolder holder, int position) {
|
||||||
|
RecommendResult.RowsBean rowsBean = rowsBeans.get(position);
|
||||||
|
holder.textView80.setText(rowsBean.tuijianyu);
|
||||||
|
holder.textView101.setText(String.valueOf(rowsBean.tuijiannumber));
|
||||||
|
holder.textView102.setText(rowsBean.tuijianname);
|
||||||
|
|
||||||
|
// 加载图片,这里假设你使用 Glide 库
|
||||||
|
if (rowsBean.picture != null) {
|
||||||
|
Glide.with(holder.itemView.getContext()).load(rowsBean.picture).into(holder.imageView8);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemCount() {
|
||||||
|
return rowsBeans.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ViewHolder extends RecyclerView.ViewHolder {
|
||||||
|
TextView textView80;
|
||||||
|
TextView textView101;
|
||||||
|
TextView textView102;
|
||||||
|
ImageView imageView8;
|
||||||
|
|
||||||
|
public ViewHolder(View itemView) {
|
||||||
|
super(itemView);
|
||||||
|
textView80 = itemView.findViewById(R.id.textView80);
|
||||||
|
textView101 = itemView.findViewById(R.id.textView101);
|
||||||
|
textView102 = itemView.findViewById(R.id.textView102);
|
||||||
|
imageView8 = itemView.findViewById(R.id.imageView8);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -18,6 +18,7 @@ import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import com.bumptech.glide.Glide;
|
import com.bumptech.glide.Glide;
|
||||||
import com.example.myapplication.Utils.RetrofitUtils;
|
import com.example.myapplication.Utils.RetrofitUtils;
|
||||||
|
import com.example.myapplication.dao.GoodsinformationResult;
|
||||||
import com.example.myapplication.dao.ShouyeshuiguoResult;
|
import com.example.myapplication.dao.ShouyeshuiguoResult;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -47,6 +48,9 @@ public class HomeFragment extends Fragment {
|
||||||
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
|
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
|
||||||
recyclerView.setAdapter(myAdapter);
|
recyclerView.setAdapter(myAdapter);
|
||||||
|
|
||||||
|
// 调用 fetchAndSaveGoodsinformation 方法
|
||||||
|
fetchAndSaveGoodsinformation();
|
||||||
|
|
||||||
SharedPreferences sharedPreferences = getActivity().getSharedPreferences("data", MODE_PRIVATE);
|
SharedPreferences sharedPreferences = getActivity().getSharedPreferences("data", MODE_PRIVATE);
|
||||||
String token = sharedPreferences.getString("token", "");
|
String token = sharedPreferences.getString("token", "");
|
||||||
Call<ShouyeshuiguoResult> shouyeshuiguoResultCall =
|
Call<ShouyeshuiguoResult> shouyeshuiguoResultCall =
|
||||||
|
@ -88,6 +92,48 @@ public class HomeFragment extends Fragment {
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void fetchAndSaveGoodsinformation() {
|
||||||
|
SharedPreferences sharedPreferences = getActivity().getSharedPreferences("data", MODE_PRIVATE);
|
||||||
|
String token = sharedPreferences.getString("token", "");
|
||||||
|
Call<GoodsinformationResult> goodsinformationResultCall =
|
||||||
|
RetrofitUtils.getRetrofit("http://192.168.56.115:8080/").create(Api.class).getGoodsinformation("Bearer " + token);
|
||||||
|
goodsinformationResultCall.enqueue(new Callback<GoodsinformationResult>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(Call<GoodsinformationResult> call, Response<GoodsinformationResult> response) {
|
||||||
|
GoodsinformationResult goodsinformationResult = response.body();
|
||||||
|
if (goodsinformationResult != null) {
|
||||||
|
if (goodsinformationResult.code == 200) {
|
||||||
|
SharedPreferences.Editor editor = sharedPreferences.edit();
|
||||||
|
for (GoodsinformationResult.RowsBean rowsBean : goodsinformationResult.rows) {
|
||||||
|
editor.putString("supplier_" + rowsBean.goodsid, rowsBean.supplier);
|
||||||
|
editor.putString("standard_" + rowsBean.goodsid, rowsBean.standard);
|
||||||
|
editor.putString("locality_" + rowsBean.goodsid, rowsBean.locality);
|
||||||
|
editor.putString("qualityguaranteeperiod_" + rowsBean.goodsid, rowsBean.qualityguaranteeperiod);
|
||||||
|
editor.putString("particular_" + rowsBean.goodsid, rowsBean.particular);
|
||||||
|
editor.putString("picture1_" + rowsBean.goodsid, rowsBean.picture1);
|
||||||
|
editor.putString("picture2_" + rowsBean.goodsid, rowsBean.picture2);
|
||||||
|
editor.putString("picture3_" + rowsBean.goodsid, rowsBean.picture3);
|
||||||
|
editor.putString("goodsid_" + rowsBean.goodsid, rowsBean.goodsid.toString());
|
||||||
|
}
|
||||||
|
editor.apply();
|
||||||
|
} else if (goodsinformationResult.code == 401) {
|
||||||
|
Log.e("HomeFragment", "Unauthorized access");
|
||||||
|
} else {
|
||||||
|
Log.e("HomeFragment", "Error code: " + goodsinformationResult.code);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Log.e("HomeFragment", "Response body is null");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Call<GoodsinformationResult> call, Throwable t) {
|
||||||
|
t.printStackTrace();
|
||||||
|
Log.e("HomeFragment", "Network error: " + t.getMessage());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
public class MyViewHolder extends RecyclerView.ViewHolder {
|
public class MyViewHolder extends RecyclerView.ViewHolder {
|
||||||
TextView textView1, textView2, textView3, textView4;
|
TextView textView1, textView2, textView3, textView4;
|
||||||
ImageButton imageButton1;
|
ImageButton imageButton1;
|
||||||
|
@ -135,14 +181,19 @@ public class HomeFragment extends Fragment {
|
||||||
.into(holder.imageButton1);
|
.into(holder.imageButton1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
holder.imageButton1.setOnClickListener(new View.OnClickListener() {
|
holder.imageButton1.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
int clickedPosition = holder.getAdapterPosition();
|
int clickedPosition = holder.getAdapterPosition();
|
||||||
if (clickedPosition != RecyclerView.NO_POSITION) {
|
if (clickedPosition != RecyclerView.NO_POSITION) {
|
||||||
Intent intent = new Intent(HomeFragment.this.getActivity(), shuiguoxiangqingActivity.class);
|
Intent intent = new Intent(HomeFragment.this.getActivity(), shuiguoxiangqingActivity.class);
|
||||||
intent.putExtra("id", list.get(clickedPosition).picture);
|
ShouyeshuiguoResult.RowsBean item = list.get(clickedPosition);
|
||||||
|
intent.putExtra("picture", item.picture);
|
||||||
|
intent.putExtra("price", item.price);
|
||||||
|
intent.putExtra("goodsname", item.goodsname);
|
||||||
|
intent.putExtra("time1", item.time1);
|
||||||
|
intent.putExtra("time2", item.time2);
|
||||||
|
intent.putExtra("goodsid", item.goodsId); // 添加这一行
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,19 +1,84 @@
|
||||||
package com.example.myapplication;
|
package com.example.myapplication;
|
||||||
|
|
||||||
|
import static android.content.Context.MODE_PRIVATE;
|
||||||
|
|
||||||
|
import android.content.SharedPreferences;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import android.util.Log;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import com.example.myapplication.Adapter.ShoppingTrolleyAdapter;
|
||||||
|
import com.example.myapplication.Utils.RetrofitUtils;
|
||||||
|
import com.example.myapplication.dao.ShoptrolleyResult;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import retrofit2.Call;
|
||||||
|
import retrofit2.Callback;
|
||||||
|
import retrofit2.Response;
|
||||||
|
|
||||||
public class ShoppingTrolleyFragment extends Fragment {
|
public class ShoppingTrolleyFragment extends Fragment {
|
||||||
|
|
||||||
|
private List<ShoptrolleyResult.RowsBean> list = new ArrayList<>();
|
||||||
|
private ShoppingTrolleyAdapter adapter;
|
||||||
|
private RecyclerView recyclerView;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
// Inflate the layout for this fragment
|
// Inflate the layout for this fragment
|
||||||
return inflater.inflate(R.layout.fragment_shopping_trolley, container, false);
|
View view = inflater.inflate(R.layout.fragment_shopping_trolley, container, false);
|
||||||
|
|
||||||
|
recyclerView = view.findViewById(R.id.recyclerView3); // 假设你的 RecyclerView 的 ID 是 recyclerView
|
||||||
|
adapter = new ShoppingTrolleyAdapter(list);
|
||||||
|
recyclerView.setAdapter(adapter);
|
||||||
|
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
|
||||||
|
|
||||||
|
SharedPreferences sharedPreferences = getActivity().getSharedPreferences("data", MODE_PRIVATE);
|
||||||
|
String token = sharedPreferences.getString("token", "");
|
||||||
|
Call<ShoptrolleyResult> shoptrolleyResultCall =
|
||||||
|
RetrofitUtils.getRetrofit("http://192.168.56.115:8080/").create(Api.class).getShoptrolley("Bearer " + token);
|
||||||
|
shoptrolleyResultCall.enqueue(new Callback<ShoptrolleyResult>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(Call<ShoptrolleyResult> call, Response<ShoptrolleyResult> response) {
|
||||||
|
ShoptrolleyResult shoptrolleyResult = response.body();
|
||||||
|
if (shoptrolleyResult != null) {
|
||||||
|
if (shoptrolleyResult.code == 200) {
|
||||||
|
// 清空原有数据
|
||||||
|
list.clear();
|
||||||
|
// 将新数据添加到列表中
|
||||||
|
for (ShoptrolleyResult.RowsBean rowsBean : shoptrolleyResult.rows) {
|
||||||
|
list.add(rowsBean);
|
||||||
|
}
|
||||||
|
adapter.notifyDataSetChanged();
|
||||||
|
} else if (shoptrolleyResult.code == 401) {
|
||||||
|
// 处理未授权的情况,例如提示用户重新登录
|
||||||
|
Log.e("ShoppingTrolleyFragment", "Unauthorized access");
|
||||||
|
} else {
|
||||||
|
// 处理其他错误情况
|
||||||
|
Log.e("ShoppingTrolleyFragment", "Error: " + shoptrolleyResult.code);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 处理响应为空的情况
|
||||||
|
Log.e("ShoppingTrolleyFragment", "Response is null");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Call<ShoptrolleyResult> call, Throwable t) {
|
||||||
|
// 处理网络错误或其他异常
|
||||||
|
t.printStackTrace();
|
||||||
|
Log.e("ShoppingTrolleyFragment", "Network error: " + t.getMessage());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return view;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,47 @@
|
||||||
|
package com.example.myapplication.dao;
|
||||||
|
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@lombok.NoArgsConstructor
|
||||||
|
@lombok.Data
|
||||||
|
public class RecommendResult {
|
||||||
|
|
||||||
|
@SerializedName("total")
|
||||||
|
public Integer total;
|
||||||
|
@SerializedName("rows")
|
||||||
|
public List<RowsBean> rows;
|
||||||
|
@SerializedName("code")
|
||||||
|
public Integer code;
|
||||||
|
@SerializedName("msg")
|
||||||
|
public String msg;
|
||||||
|
|
||||||
|
@lombok.NoArgsConstructor
|
||||||
|
@lombok.Data
|
||||||
|
public static class RowsBean {
|
||||||
|
@SerializedName("createBy")
|
||||||
|
public Object createBy;
|
||||||
|
@SerializedName("createTime")
|
||||||
|
public Object createTime;
|
||||||
|
@SerializedName("updateBy")
|
||||||
|
public Object updateBy;
|
||||||
|
@SerializedName("updateTime")
|
||||||
|
public Object updateTime;
|
||||||
|
@SerializedName("remark")
|
||||||
|
public Object remark;
|
||||||
|
@SerializedName("id")
|
||||||
|
public Integer id;
|
||||||
|
@SerializedName("tuijianname")
|
||||||
|
public String tuijianname;
|
||||||
|
@SerializedName("tuijiannumber")
|
||||||
|
public Integer tuijiannumber;
|
||||||
|
@SerializedName("tuijianyu")
|
||||||
|
public String tuijianyu;
|
||||||
|
@SerializedName("picture")
|
||||||
|
public Object picture;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,49 @@
|
||||||
|
package com.example.myapplication.dao;
|
||||||
|
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Data
|
||||||
|
public class ShoptrolleyResult {
|
||||||
|
|
||||||
|
@SerializedName("total")
|
||||||
|
public Integer total;
|
||||||
|
@SerializedName("rows")
|
||||||
|
public List<RowsBean> rows;
|
||||||
|
@SerializedName("code")
|
||||||
|
public Integer code;
|
||||||
|
@SerializedName("msg")
|
||||||
|
public String msg;
|
||||||
|
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Data
|
||||||
|
public static class RowsBean {
|
||||||
|
@SerializedName("createBy")
|
||||||
|
public Object createBy;
|
||||||
|
@SerializedName("createTime")
|
||||||
|
public Object createTime;
|
||||||
|
@SerializedName("updateBy")
|
||||||
|
public Object updateBy;
|
||||||
|
@SerializedName("updateTime")
|
||||||
|
public Object updateTime;
|
||||||
|
@SerializedName("remark")
|
||||||
|
public Object remark;
|
||||||
|
@SerializedName("id")
|
||||||
|
public Integer id;
|
||||||
|
@SerializedName("shopname")
|
||||||
|
public String shopname;
|
||||||
|
@SerializedName("shopguige")
|
||||||
|
public String shopguige;
|
||||||
|
@SerializedName("price")
|
||||||
|
public Double price;
|
||||||
|
@SerializedName("shopnumber")
|
||||||
|
public Integer shopnumber;
|
||||||
|
@SerializedName("shoppicture")
|
||||||
|
public Object shoppicture;
|
||||||
|
}
|
||||||
|
}
|
|
@ -2,10 +2,15 @@ package com.example.myapplication;
|
||||||
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
|
||||||
|
import android.content.SharedPreferences;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.widget.ImageButton;
|
import android.widget.ImageButton;
|
||||||
|
import android.widget.ImageView;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import com.bumptech.glide.Glide;
|
||||||
|
|
||||||
public class shuiguoxiangqingActivity extends AppCompatActivity {
|
public class shuiguoxiangqingActivity extends AppCompatActivity {
|
||||||
|
|
||||||
|
@ -14,6 +19,71 @@ public class shuiguoxiangqingActivity extends AppCompatActivity {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.activity_shuiguoxiangqing);
|
setContentView(R.layout.activity_shuiguoxiangqing);
|
||||||
|
|
||||||
|
// 获取传递过来的数据
|
||||||
|
Intent intent = getIntent();
|
||||||
|
String picture = intent.getStringExtra("picture");
|
||||||
|
double price = intent.getDoubleExtra("price", 0.0);
|
||||||
|
String goodsname = intent.getStringExtra("goodsname");
|
||||||
|
String time1 = intent.getStringExtra("time1");
|
||||||
|
String time2 = intent.getStringExtra("time2");
|
||||||
|
int goodsid = intent.getIntExtra("goodsid", -1); // 添加这一行来获取 goodsid
|
||||||
|
|
||||||
|
|
||||||
|
// 设置数据到视图组件
|
||||||
|
ImageView imageView7 = findViewById(R.id.imageView7);
|
||||||
|
TextView textView81 = findViewById(R.id.textView81);
|
||||||
|
TextView textView84 = findViewById(R.id.textView84);
|
||||||
|
TextView textView88 = findViewById(R.id.textView88);
|
||||||
|
TextView textView89 = findViewById(R.id.textView89);
|
||||||
|
|
||||||
|
// 使用 Glide 加载图片
|
||||||
|
if (picture != null && !picture.isEmpty()) {
|
||||||
|
Glide.with(this).load(picture).into(imageView7);
|
||||||
|
}
|
||||||
|
textView81.setText(String.valueOf(price));
|
||||||
|
textView84.setText(goodsname);
|
||||||
|
textView88.setText(time1);
|
||||||
|
textView89.setText(time2);
|
||||||
|
|
||||||
|
|
||||||
|
// 从 SharedPreferences 中获取数据
|
||||||
|
SharedPreferences sharedPreferences = getSharedPreferences("data", MODE_PRIVATE);
|
||||||
|
String supplier = sharedPreferences.getString("supplier_" + goodsid, "");
|
||||||
|
String standard = sharedPreferences.getString("standard_" + goodsid, "");
|
||||||
|
String locality = sharedPreferences.getString("locality_" + goodsid, "");
|
||||||
|
String qualityguaranteeperiod = sharedPreferences.getString("qualityguaranteeperiod_" + goodsid, "");
|
||||||
|
String particular = sharedPreferences.getString("particular_" + goodsid, "");
|
||||||
|
String picture1 = sharedPreferences.getString("picture1_" + goodsid, "");
|
||||||
|
String picture2 = sharedPreferences.getString("picture2_" + goodsid, "");
|
||||||
|
String picture3 = sharedPreferences.getString("picture3_" + goodsid, "");
|
||||||
|
|
||||||
|
// 设置数据到视图组件
|
||||||
|
TextView textView95 = findViewById(R.id.textView95);
|
||||||
|
TextView textView96 = findViewById(R.id.textView96);
|
||||||
|
TextView textView97 = findViewById(R.id.textView97);
|
||||||
|
TextView textView98 = findViewById(R.id.textView98);
|
||||||
|
TextView textView100 = findViewById(R.id.textView100);
|
||||||
|
ImageView imageView13 = findViewById(R.id.imageView13);
|
||||||
|
ImageView imageView14 = findViewById(R.id.imageView14);
|
||||||
|
ImageView imageView15 = findViewById(R.id.imageView15);
|
||||||
|
|
||||||
|
textView95.setText(supplier);
|
||||||
|
textView96.setText(standard);
|
||||||
|
textView97.setText(locality);
|
||||||
|
textView98.setText(qualityguaranteeperiod);
|
||||||
|
textView100.setText(particular);
|
||||||
|
|
||||||
|
if (picture1 != null && !picture1.isEmpty()) {
|
||||||
|
Glide.with(this).load(picture1).into(imageView13);
|
||||||
|
}
|
||||||
|
if (picture2 != null && !picture2.isEmpty()) {
|
||||||
|
Glide.with(this).load(picture2).into(imageView14);
|
||||||
|
}
|
||||||
|
if (picture3 != null && !picture3.isEmpty()) {
|
||||||
|
Glide.with(this).load(picture3).into(imageView15);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//返回
|
//返回
|
||||||
ImageButton imageButton = findViewById(R.id.imageButton31);
|
ImageButton imageButton = findViewById(R.id.imageButton31);
|
||||||
imageButton.setOnClickListener(new View.OnClickListener() {
|
imageButton.setOnClickListener(new View.OnClickListener() {
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 906 B |
Binary file not shown.
After Width: | Height: | Size: 981 B |
Binary file not shown.
After Width: | Height: | Size: 716 B |
|
@ -112,20 +112,11 @@
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:layout_width="405dp"
|
android:layout_width="405dp"
|
||||||
android:layout_height="1300dp"
|
android:layout_height="2000dp"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent">
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/textView79"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="TextView"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent" />
|
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/imageView7"
|
android:id="@+id/imageView7"
|
||||||
android:layout_width="430dp"
|
android:layout_width="430dp"
|
||||||
|
@ -418,13 +409,43 @@
|
||||||
android:layout_height="140dp"
|
android:layout_height="140dp"
|
||||||
android:layout_marginTop="8dp"
|
android:layout_marginTop="8dp"
|
||||||
android:text="100"
|
android:text="100"
|
||||||
android:textStyle="bold"
|
|
||||||
android:textColor="#000000"
|
android:textColor="#000000"
|
||||||
android:textSize="18dp"
|
android:textSize="18dp"
|
||||||
|
android:textStyle="bold"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/textView99" />
|
app:layout_constraintTop_toBottomOf="@+id/textView99" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/imageView13"
|
||||||
|
android:layout_width="400dp"
|
||||||
|
android:layout_height="300dp"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/textView100"
|
||||||
|
app:srcCompat="@drawable/ic_launcher_background" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/imageView14"
|
||||||
|
android:layout_width="400dp"
|
||||||
|
android:layout_height="300dp"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/imageView13"
|
||||||
|
app:srcCompat="@drawable/ic_launcher_background" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/imageView15"
|
||||||
|
android:layout_width="400dp"
|
||||||
|
android:layout_height="300dp"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/imageView14"
|
||||||
|
app:srcCompat="@drawable/ic_launcher_background" />
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
</androidx.core.widget.NestedScrollView>
|
</androidx.core.widget.NestedScrollView>
|
||||||
|
|
|
@ -1,6 +1,72 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="180dp">
|
||||||
|
|
||||||
|
<androidx.cardview.widget.CardView
|
||||||
|
android:layout_width="396dp"
|
||||||
|
android:layout_height="170dp"
|
||||||
|
android:layout_marginStart="1dp"
|
||||||
|
android:layout_marginTop="1dp"
|
||||||
|
android:layout_marginEnd="1dp"
|
||||||
|
android:layout_marginBottom="1dp"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" >
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/imageView8"
|
||||||
|
android:layout_width="150dp"
|
||||||
|
android:layout_height="150dp"
|
||||||
|
android:layout_marginTop="10dp"
|
||||||
|
android:layout_marginLeft="10dp"
|
||||||
|
app:srcCompat="@drawable/ic_launcher_background" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/textView80"
|
||||||
|
android:layout_width="210dp"
|
||||||
|
android:layout_height="90dp"
|
||||||
|
android:layout_marginLeft="175dp"
|
||||||
|
android:layout_marginTop="10dp"
|
||||||
|
android:text="TextView"
|
||||||
|
android:textColor="#000000"
|
||||||
|
android:textSize="18dp"
|
||||||
|
android:gravity="top|start"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/imageView9"
|
||||||
|
android:layout_width="30dp"
|
||||||
|
android:layout_height="30dp"
|
||||||
|
android:layout_marginLeft="360dp"
|
||||||
|
android:layout_marginTop="126dp"
|
||||||
|
app:srcCompat="@drawable/zhuanfa" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/textView101"
|
||||||
|
android:layout_width="86dp"
|
||||||
|
android:layout_height="30dp"
|
||||||
|
android:layout_marginLeft="273dp"
|
||||||
|
android:layout_marginTop="126dp"
|
||||||
|
android:textColor="#000000"
|
||||||
|
android:textSize="18dp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="TextView" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/textView102"
|
||||||
|
android:layout_width="100dp"
|
||||||
|
android:layout_height="30dp"
|
||||||
|
android:layout_marginLeft="170dp"
|
||||||
|
android:layout_marginTop="126dp"
|
||||||
|
android:textColor="#FFA000"
|
||||||
|
android:textSize="18dp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="TextView" />
|
||||||
|
</androidx.cardview.widget.CardView>
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -76,6 +76,7 @@
|
||||||
app:layout_constraintStart_toStartOf="parent">
|
app:layout_constraintStart_toStartOf="parent">
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/recyclerView2"
|
||||||
android:layout_width="407dp"
|
android:layout_width="407dp"
|
||||||
android:layout_height="550dp"
|
android:layout_height="550dp"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
|
|
@ -77,6 +77,14 @@
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/constraintLayout11">
|
app:layout_constraintTop_toBottomOf="@+id/constraintLayout11">
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/recyclerView3"
|
||||||
|
android:layout_width="407dp"
|
||||||
|
android:layout_height="627dp"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,92 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="130dp">
|
||||||
|
|
||||||
|
<androidx.cardview.widget.CardView
|
||||||
|
android:layout_width="396dp"
|
||||||
|
android:layout_height="120dp"
|
||||||
|
android:layout_marginStart="1dp"
|
||||||
|
android:layout_marginTop="1dp"
|
||||||
|
android:layout_marginEnd="1dp"
|
||||||
|
android:layout_marginBottom="1dp"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" >
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/imageView10"
|
||||||
|
android:layout_width="100dp"
|
||||||
|
android:layout_height="100dp"
|
||||||
|
android:layout_marginTop="10dp"
|
||||||
|
android:layout_marginLeft="10dp"
|
||||||
|
app:srcCompat="@drawable/ic_launcher_background" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/textView103"
|
||||||
|
android:layout_width="130dp"
|
||||||
|
android:layout_height="33dp"
|
||||||
|
android:layout_marginTop="10dp"
|
||||||
|
android:layout_marginLeft="120dp"
|
||||||
|
android:text="TextView"
|
||||||
|
android:textColor="#000000"
|
||||||
|
android:textSize="18dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/textView104"
|
||||||
|
android:layout_width="130dp"
|
||||||
|
android:layout_height="33dp"
|
||||||
|
android:layout_marginTop="10dp"
|
||||||
|
android:layout_marginLeft="260dp"
|
||||||
|
android:text="TextView"
|
||||||
|
android:textColor="#000000"
|
||||||
|
android:textSize="18dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/textView105"
|
||||||
|
android:layout_width="110dp"
|
||||||
|
android:layout_height="60dp"
|
||||||
|
android:layout_marginTop="50dp"
|
||||||
|
android:layout_marginLeft="130dp"
|
||||||
|
android:text="TextView"
|
||||||
|
android:textColor="#FF0000"
|
||||||
|
android:textSize="26dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/imageView11"
|
||||||
|
android:layout_width="39dp"
|
||||||
|
android:layout_height="39dp"
|
||||||
|
android:layout_marginTop="65dp"
|
||||||
|
android:layout_marginLeft="260dp"
|
||||||
|
app:srcCompat="@drawable/jianhao" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/imageView12"
|
||||||
|
android:layout_width="35dp"
|
||||||
|
android:layout_height="35dp"
|
||||||
|
android:layout_marginTop="66dp"
|
||||||
|
android:layout_marginLeft="340dp"
|
||||||
|
app:srcCompat="@drawable/jiahao" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/textView106"
|
||||||
|
android:layout_width="70dp"
|
||||||
|
android:layout_height="36dp"
|
||||||
|
android:layout_marginTop="66dp"
|
||||||
|
android:layout_marginLeft="283dp"
|
||||||
|
android:textColor="#000000"
|
||||||
|
android:textSize="26dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:text="TextView" />
|
||||||
|
</androidx.cardview.widget.CardView>
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
Loading…
Reference in New Issue