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…
Reference in new issue