You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
162 lines
5.7 KiB
162 lines
5.7 KiB
package com.example.drink_order_system;
|
|
|
|
import android.content.Intent;
|
|
import android.os.Bundle;
|
|
import android.app.Fragment;
|
|
import androidx.annotation.NonNull;
|
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
|
import androidx.recyclerview.widget.RecyclerView;
|
|
import android.view.LayoutInflater;
|
|
import android.view.View;
|
|
import android.view.ViewGroup;
|
|
|
|
import java.io.FileInputStream;
|
|
import java.io.FileOutputStream;
|
|
import java.io.IOException;
|
|
import java.io.InputStreamReader;
|
|
import java.io.LineNumberReader;
|
|
import java.io.Reader;
|
|
import java.nio.charset.StandardCharsets;
|
|
import java.util.ArrayList;
|
|
|
|
/**
|
|
* A simple {@link Fragment} subclass.
|
|
* Use the {@link BillFragment#newInstance} factory method to
|
|
* create an instance of this fragment.
|
|
*/
|
|
public class BillFragment extends Fragment {
|
|
|
|
// TODO: Rename parameter arguments, choose names that match
|
|
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
|
|
private String userName;
|
|
private ArrayList<Order> orders = new ArrayList<>();
|
|
private RecyclerView order_listView;
|
|
private View view;
|
|
private LinearLayoutManager llM;
|
|
|
|
private LayoutInflater layoutInflater;
|
|
public BillFragment() {
|
|
// Required empty public constructor
|
|
}
|
|
public static BillFragment newInstance(String userName) {
|
|
BillFragment fragment = new BillFragment();
|
|
Bundle args = new Bundle();
|
|
System.out.println("Username in newInstance"+userName);
|
|
args.putString("userName", userName);
|
|
fragment.setArguments(args);
|
|
return fragment;
|
|
}
|
|
|
|
@Override
|
|
public void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
if (getArguments() != null) {
|
|
userName = getArguments().getString("userName");
|
|
System.out.println("USERNAME: "+userName);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
|
Bundle savedInstanceState) {
|
|
// Inflate the layout for this fragment
|
|
layoutInflater = inflater;
|
|
try
|
|
{
|
|
FileOutputStream fos1;
|
|
FileInputStream fis;
|
|
if(getContext() != null) {
|
|
fis = getContext().openFileInput(userName + "bill.txt");
|
|
Reader in = new InputStreamReader(fis, StandardCharsets.UTF_8);
|
|
LineNumberReader reader = new LineNumberReader(in);
|
|
String s;
|
|
while ((s = reader.readLine()) != null) {
|
|
System.out.println(s);
|
|
s = s.replace("/n", "");
|
|
orders.add(0, new Order(s));
|
|
}
|
|
reader.close();
|
|
in.close();
|
|
}
|
|
}
|
|
catch (IOException e)
|
|
{
|
|
System.out.println("read error");
|
|
}
|
|
view = inflater.inflate(R.layout.fragment_bill, container, false);
|
|
order_listView = (RecyclerView) view.findViewById(R.id.RV_bill);
|
|
llM = new LinearLayoutManager(this.getActivity());
|
|
order_listView.setLayoutManager(llM);
|
|
BillAdapter billAdapter = new BillAdapter(inflater, orders);
|
|
billAdapter.setOnItemClickListener(new BillAdapter.OnItemClickListener() {
|
|
@Override
|
|
public void onItemClick(View view, int position) {
|
|
// 获取点击的订单对象
|
|
Order clickedOrder = orders.get(position);
|
|
String number = clickedOrder.getOrder_number(); // 获取订单号
|
|
|
|
// 创建 Intent 并传递订单号到 BillActivity
|
|
Intent intent = new Intent(getActivity(), BillActivity.class);
|
|
intent.putExtra("userName", userName);
|
|
intent.putExtra("number", number.substring(0,14));
|
|
|
|
view.getContext().startActivity(intent);
|
|
}
|
|
});
|
|
order_listView.setAdapter(billAdapter);
|
|
return view;
|
|
}
|
|
|
|
private void refresh() {
|
|
orders.clear();
|
|
try
|
|
{
|
|
FileOutputStream fos1;
|
|
FileInputStream fis;
|
|
if(getContext() != null) {
|
|
fis = getContext().openFileInput(userName + "bill.txt");
|
|
Reader in = new InputStreamReader(fis, StandardCharsets.UTF_8);
|
|
LineNumberReader reader = new LineNumberReader(in);
|
|
String s;
|
|
while ((s = reader.readLine()) != null) {
|
|
System.out.println(s);
|
|
s = s.replace("/n", "");
|
|
orders.add(0, new Order(s));
|
|
}
|
|
reader.close();
|
|
in.close();
|
|
}
|
|
}
|
|
catch (IOException e)
|
|
{
|
|
System.out.println("read error");
|
|
}
|
|
|
|
|
|
LayoutInflater inflater=layoutInflater;
|
|
BillAdapter billAdapter = new BillAdapter(inflater, orders);
|
|
billAdapter.setOnItemClickListener(new BillAdapter.OnItemClickListener() {
|
|
@Override
|
|
public void onItemClick(View view, int position) {
|
|
// 获取点击的订单对象
|
|
Order clickedOrder = orders.get(position);
|
|
String number = clickedOrder.getOrder_number(); // 获取订单号
|
|
|
|
// 创建 Intent 并传递订单号到 BillActivity
|
|
Intent intent = new Intent(getActivity(), BillActivity.class);
|
|
intent.putExtra("userName", userName);
|
|
intent.putExtra("number", number.substring(0,14));
|
|
|
|
view.getContext().startActivity(intent);
|
|
}
|
|
});
|
|
order_listView.setAdapter(billAdapter);
|
|
}
|
|
|
|
|
|
@Override
|
|
public void onHiddenChanged(boolean hidden) {
|
|
super.onHiddenChanged(hidden);
|
|
refresh();
|
|
}
|
|
} |