ADD file via upload

main
puem2gl9z 1 year ago
parent 2b76cf9bca
commit e131f48ace

@ -0,0 +1,278 @@
package com.example.drink_order_system;
import static com.example.drink_order_system.Drinks.all_drinks;
import static com.example.drink_order_system.Restaurant.all_restaurant;
import android.app.AlertDialog;
import android.content.Context;
import android.os.Bundle;
import android.app.Fragment;
import android.util.Log;
import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Adapter;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.SearchView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.squareup.picasso.Picasso;
import java.io.IOException;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.HashSet;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class OrderFragment extends Fragment {
Right_adapter rightAdapter;
private ArrayList<Drinks> drinks_array = new ArrayList<Drinks>(); //可选的饮品列表
private ArrayList<LeftBean> titles_array = new ArrayList<LeftBean>(); //饮品类别列表
private RecyclerView right_listView; //右侧饮品列表
private RecyclerView left_listView; //左侧类别列表
private LinearLayoutManager right_llM;
private TextView right_title;
private SearchView searchView;
private String restaurantName;
private AlertDialog chooseDialog = null;
private AlertDialog.Builder builder = null;
private View view_choose;
private Context mContext = this.getActivity();
public OrderFragment() {
// Required empty public constructor
}
public static OrderFragment newInstance(String restaurantName) {
OrderFragment fragment = new OrderFragment();
Bundle args = new Bundle();
args.putString("restaurantName", restaurantName);
fragment.setArguments(args);
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_order, container, false);
SearchView mSearch = (SearchView) view.findViewById(R.id.my_search);
int id = mSearch.getContext().getResources().getIdentifier("android:id/search_src_text", null, null);
TextView text_search = (TextView) mSearch.findViewById(id);
text_search.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);
if (getArguments() != null) {
restaurantName = getArguments().getString("restaurantName");
}
right_title = (TextView) view.findViewById(R.id.Top_drinkType);
right_listView = (RecyclerView) view.findViewById(R.id.rec_right);
left_listView = (RecyclerView) view.findViewById(R.id.rec_left);
searchView = (SearchView) view.findViewById(R.id.my_search);
builder = new AlertDialog.Builder(this.getActivity());
view_choose = inflater.inflate(R.layout.dialogue_choose, null, false);
builder.setView(view_choose);
builder.setCancelable(false);
chooseDialog = builder.create();
view_choose.findViewById(R.id.button_exit).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
chooseDialog.dismiss();
}
});
view_choose.findViewById(R.id.button_buy).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TextView drinkName = view_choose.findViewById(R.id.choose_drinkName);
//写买进购物车的逻辑
System.out.println("drinkName:" + String.valueOf(drinkName.getText()).split(" #")[0]);
Drinks drink = new Drinks(Integer.parseInt(String.valueOf(drinkName.getText()).split(" #")[1]));
TextView numberTV = (TextView) view_choose.findViewById(R.id.textView_drinkNumber);
int number = Integer.parseInt((String) numberTV.getText());
Ordered_drinks od = new Ordered_drinks(drink, number,restaurantName);
chooseDialog.dismiss();
}
});
view_choose.findViewById(R.id.button_subtract).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TextView numberText = (TextView) view_choose.findViewById(R.id.textView_drinkNumber);
int i = Integer.parseInt(String.valueOf(numberText.getText()));
if (i > 1) {
i--;
}
numberText.setText(String.valueOf(i));
}
});
view_choose.findViewById(R.id.button_add).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TextView numberText = (TextView) view_choose.findViewById(R.id.textView_drinkNumber);
int i = Integer.parseInt(String.valueOf(numberText.getText()));
if (i < 100) {
i++;
}
numberText.setText(String.valueOf(i));
}
});
right_llM = new LinearLayoutManager(this.getActivity());
right_listView.setLayoutManager(right_llM);
rightAdapter = new Right_adapter(inflater, drinks_array);
right_listView.setAdapter(rightAdapter);
initData();
left_listView.setLayoutManager(new LinearLayoutManager(this.getActivity()));
LeftAdapter leftAdapter = new LeftAdapter(titles_array);
left_listView.setAdapter(leftAdapter);
right_listView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
int firstItemPosition = right_llM.findFirstVisibleItemPosition();
leftAdapter.setCurrentPosition(firstItemPosition);
if (leftAdapter.getCurrentTitle() != "") {
right_title.setText(leftAdapter.getCurrentTitle());
}
}
});
leftAdapter.setOnItemClickListener(new LeftAdapter.OnItemClickListener() {
@Override
public void onItemClicked(int rightPosition) {
if (right_llM != null) {
right_llM.scrollToPositionWithOffset(rightPosition, 0);
}
}
});
rightAdapter.buttonSetOnClick(new Right_adapter.MyClickListener() {
@Override
public void onclick(View v, int position) {
chooseDialog.show();
if (view_choose != null) {
Drinks drink = drinks_array.get(position);
ImageView img = view_choose.findViewById(R.id.choose_drink_img);
Picasso.get().load(drink.get_imagePath()).into(img);
TextView name = view_choose.findViewById(R.id.choose_drinkName);
name.setText(drink.get_name() + " #" + (drink.get_number() + 1));
TextView intro = view_choose.findViewById(R.id.choose_drinkIntro);
intro.setText(drink.get_introduction());
TextView drink_number = view_choose.findViewById(R.id.textView_drinkNumber);
drink_number.setText("1");
}
}
});
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String queryText) {
for (int i = 0; i < drinks_array.size(); i++) {
if (drinks_array.get(i).get_name().contains(queryText)) {
if (right_llM != null) {
right_llM.scrollToPositionWithOffset(i, 0);
break;
}
}
}
return true;
}
});
return view;
}
private void initData() {
String url = "http://192.168.43.176:8080/warehouse_management_system_war_exploded/getGoods";
Log.i("restaurantName",restaurantName);
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(url+"?Sname="+restaurantName)
.build();
Log.i("url",url+"?Sname="+restaurantName);
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
e.printStackTrace();
Log.i("onFailure","onFailure");
// 处理请求失败
}
@Override
public void onResponse(Call call, Response response) throws IOException {
if (response.isSuccessful()) {
String responseData = response.body().string();
getActivity().runOnUiThread(() -> {
Log.i("isSuccessful","isSuccessful");
Log.i("responseData",responseData);
Gson gson = new Gson();
Type DrinksListType = new TypeToken<ArrayList<Drinks>>() {}.getType();
ArrayList<Drinks> drinks = gson.fromJson(responseData, DrinksListType);
// 对饮品列表进行排序,先非主食后主食
ArrayList<Drinks> mainDishArray = new ArrayList<>();
ArrayList<Drinks> nonMainDishArray = new ArrayList<>();
for (Drinks drink : drinks) {
if ("主食".equals(drink.get_type())) {
mainDishArray.add(drink);
} else {
nonMainDishArray.add(drink);
}
}
nonMainDishArray.addAll(mainDishArray);
drinks_array.clear();
drinks_array.addAll(nonMainDishArray);
all_drinks.clear();
all_drinks.addAll(nonMainDishArray); // 更新为排序后的饮品列表
rightAdapter.notifyDataSetChanged();
Log.i("drinks_array",String.valueOf(drinks_array.size()));
HashSet<String> titleSet = new HashSet<>(); // 用于检查标题是否已经存在
for (int i = 0; i < drinks_array.size(); i++) {
Drinks temp = drinks_array.get(i);
if (temp.get_type() != null && !titleSet.contains(temp.get_type())) {
titles_array.add(new LeftBean(i, temp.get_type()));
titleSet.add(temp.get_type()); // 将标题添加到集合中
}
}
// titles_array.get(0).setSelect(true);
});
} else {
// 处理请求失败
}
}
});
}
}
Loading…
Cancel
Save