diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2bf3234..eccc6f6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -4,7 +4,7 @@
-
+
-
+
diff --git a/app/src/main/java/com/example/as_trak/LoadMainActivity.java b/app/src/main/java/com/example/as_trak/LoadMainActivity.java
index 4bba135..dd49d45 100644
--- a/app/src/main/java/com/example/as_trak/LoadMainActivity.java
+++ b/app/src/main/java/com/example/as_trak/LoadMainActivity.java
@@ -45,7 +45,8 @@ public class LoadMainActivity extends BaseActivity implements AddFlightDialog.Ad
private ActivityLoadMainBinding binding;
private ObservableInt cargoQty;
private ObservableInt loadQty;
-
+ private androidx.appcompat.app.AlertDialog.Builder alertDialog;
+ private String[] loadStateList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -66,6 +67,22 @@ public class LoadMainActivity extends BaseActivity implements AddFlightDialog.Ad
builder = new AlertDialog.Builder(this);
builder.setTitle("删除确认").setMessage("是否确定删除装载单元").setNegativeButton("取消", null);
+ initAlertDialog();
+
+ }
+
+ private void initAlertDialog() {
+ loadStateList = getResources().getStringArray(R.array.loadState);
+ alertDialog = new androidx.appcompat.app.AlertDialog.Builder(this);
+ alertDialog.setTitle("选择装载量")
+ .setItems(loadStateList, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ Toast.makeText(LoadMainActivity.this, "装载完成", Toast.LENGTH_SHORT).show();
+
+
+ }
+ }).setNegativeButton("取消", null).create();
}
// 初始化航班添加
@@ -147,6 +164,7 @@ public class LoadMainActivity extends BaseActivity implements AddFlightDialog.Ad
public void saveNumber(View view) {
flightInfoTag.setJieguiQty(binding.loadMainJieguiQty.getText().toString());
flightInfoTag.update(flightInfoTag.getId());
+ Toast.makeText(this, "保存成功", Toast.LENGTH_SHORT).show();
}
// 关闭货箱添加
public void loadCloseEdit(View view) {
diff --git a/app/src/main/java/com/example/as_trak/LoadScanActivity.java b/app/src/main/java/com/example/as_trak/LoadScanActivity.java
index fb3edd2..b08e818 100644
--- a/app/src/main/java/com/example/as_trak/LoadScanActivity.java
+++ b/app/src/main/java/com/example/as_trak/LoadScanActivity.java
@@ -19,6 +19,7 @@ import com.example.as_trak.adapter.CargoListAdapter;
import com.example.as_trak.adapter.LoadInfoAdapter;
import com.example.as_trak.base.BaseActivity;
import com.example.as_trak.databinding.ActivityLoadScanBinding;
+import com.example.as_trak.dialog.TipDialog;
import com.example.as_trak.dialog.UpdataDialog;
import com.example.as_trak.entity.CargoInfo;
import com.example.as_trak.entity.FlightInfo;
@@ -37,39 +38,41 @@ public class LoadScanActivity extends BaseActivity implements CargoListAdapter.C
private List loadOperations;
private CargoInfo cargoInfoTag;
private FlightInfo flightInfo;
- private LoadToast loadToast;
+ // private LoadToast loadToast;
private LoadInfoAdapter loadInfoAdapter;
// 定义时间格式
private DateTimeFormatter formatter;
private UpdataDialog updataDialog;
// 装载完成对话框
+
+ private TipDialog tipDialog;
private AlertDialog.Builder alertDialog;
- private String[] loadStateList;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- com.example.as_trak.databinding.ActivityLoadScanBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_load_scan);
+ ActivityLoadScanBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_load_scan);
initScan();
int id = getIntent().getIntExtra("id", 0);
flightInfo = LitePal.where("id= ?", String.valueOf(id)).findFirst(FlightInfo.class);
-
binding.setData(flightInfo);
cargoInfoList = LitePal.where("flightId = ?", String.valueOf(id)).find(CargoInfo.class);
adapter = new CargoListAdapter(this, this);
adapter.setList(cargoInfoList);
binding.setAdapter1(adapter);
formatter = DateTimeFormatter.ofPattern("HH:mm");
- loadToast = new LoadToast(this);
+ // loadToast = new LoadToast(this);
loadInfoAdapter = new LoadInfoAdapter(this, this);
binding.setAdapter2(loadInfoAdapter);
binding.loadScanSubmit.setOnLongClickListener(this);
initDialog();
}
+
// 初始化弹窗
@SuppressLint("NotifyDataSetChanged")
private void initDialog() {
- loadStateList = getResources().getStringArray(R.array.loadState);
+
updataDialog = new UpdataDialog(this);
updataDialog.setUpdataDialogCall((code, index) -> {
LoadOperation loadOperation = loadOperations.get(index);
@@ -79,23 +82,22 @@ public class LoadScanActivity extends BaseActivity implements CargoListAdapter.C
loadOperation.update(loadOperation.getId());
loadInfoAdapter.notifyDataSetChanged();
});
- alertDialog = new AlertDialog.Builder(this);
- alertDialog.setTitle("装载完成,选择装载量")
- // .setIcon(R.mipmap.ic_launcher)
- .setItems(loadStateList, new DialogInterface.OnClickListener() {
+ tipDialog = new TipDialog(this);
+ alertDialog=new AlertDialog.Builder(this);
+ alertDialog.setTitle("装载完成提示")
+ .setMessage("是否全部修改状态为装载完成")
+ .setNegativeButton("取消",null)
+ .setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
- Toast.makeText(LoadScanActivity.this,"装载完成" , Toast.LENGTH_SHORT).show();
- cargoInfoTag.setState("装载完成");
- cargoInfoTag.update(cargoInfoTag.getId());
- cargoInfoTag.setLoadState(loadStateList[which]);
- adapter.notifyDataSetChanged();
- cargoInfoTag = null;
-
+ cargoInfoList.forEach(t -> {
+ t.setState("装载完成");
+ t.update(t.getId());
+ });
+ Toast.makeText(LoadScanActivity.this, "成功", Toast.LENGTH_SHORT).show();
+ finish();
}
- }).setNegativeButton("取消", null).create();
-
-
+ }).create();
}
// 扫码结果
@@ -107,11 +109,17 @@ public class LoadScanActivity extends BaseActivity implements CargoListAdapter.C
Toast.makeText(this, "没有选择装载单元", Toast.LENGTH_SHORT).show();
return;
}
- int count = LitePal.where("flightId= ? and luggageCode=? and (state IS NULL or state = '修改') ", String.valueOf(flightInfo.getId()), code).count(LoadOperation.class);
- if (count > 0) {
- loadToast.show("行李条码重复");
+ if (cargoInfoTag.getState().equals("装载完成")) {
+ Toast.makeText(this, "装载单元已经装载完成", Toast.LENGTH_SHORT).show();
return;
}
+ int count = LitePal.where("flightId= ? and luggageCode=? and (state IS NULL or state = '修改') ", String.valueOf(flightInfo.getId()), code).count(LoadOperation.class);
+ if (count > 0) {
+ tipDialog.showError("行李条码:" + code + "重复");
+ return;
+ }
+ tipDialog.showSuccess("绑定成功");
+
LoadOperation loadOperation = new LoadOperation();
loadOperation.setFlightCode(flightInfo.getFlightCode());
loadOperation.setFlightId(flightInfo.getId());
@@ -125,7 +133,8 @@ public class LoadScanActivity extends BaseActivity implements CargoListAdapter.C
loadOperation.setLoadTime(formattedTime);
loadOperation.setType("装载");
loadOperation.save();
- loadOperations.add(loadOperation);
+ loadOperations.add(0, loadOperation);
+ Log.e("TAG", "sanCodeResult:" + loadOperations.toString());
loadInfoAdapter.notifyDataSetChanged();
int size = loadOperations.size();
Log.e("TAG", "更新的id:" + cargoInfoTag.getId() + "数量:" + size);
@@ -135,12 +144,12 @@ public class LoadScanActivity extends BaseActivity implements CargoListAdapter.C
}
- // 点击箱子
+ // 点击装载单元
@Override
public void clickCargoInfo(int index) {
cargoInfoTag = cargoInfoList.get(index);
// Log.e("TAG", "clickCargoInfo:" + cargoInfoTag.toString());
- loadOperations = LitePal.where("cargoId =? and type = ? and (state IS NULL or state = '修改') ", String.valueOf(cargoInfoTag.getId()), "正常").find(LoadOperation.class);
+ loadOperations = LitePal.where("cargoId =? and type = ? and (state IS NULL or state = '修改') ", String.valueOf(cargoInfoTag.getId()), "装载").find(LoadOperation.class);
loadInfoAdapter.setList(loadOperations);
loadInfoAdapter.notifyDataSetChanged();
}
@@ -169,21 +178,10 @@ public class LoadScanActivity extends BaseActivity implements CargoListAdapter.C
}
- public void loadOverupdate(View view) {
- CargoInfo cargoInfo = new CargoInfo();
- cargoInfo.setState("装载中");
- cargoInfo.updateAll();
-
- }
-
-
// 装载完毕
@Override
@SuppressLint("NotifyDataSetChanged")
public boolean onLongClick(View v) {
- if (cargoInfoTag == null) {
- return false;
- }
alertDialog.show();
return true;
}
diff --git a/app/src/main/java/com/example/as_trak/MainActivity.java b/app/src/main/java/com/example/as_trak/MainActivity.java
index 5214de3..ff7f993 100644
--- a/app/src/main/java/com/example/as_trak/MainActivity.java
+++ b/app/src/main/java/com/example/as_trak/MainActivity.java
@@ -6,6 +6,7 @@ import android.content.Intent;
import android.os.Bundle;
import android.view.View;
+import com.example.as_trak.dialog.TipDialog;
import com.example.as_trak.toast.LoadToast;
public class MainActivity extends AppCompatActivity {
@@ -14,7 +15,6 @@ public class MainActivity extends AppCompatActivity {
private Intent intent3;
private Intent intent4;
-
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -23,6 +23,8 @@ public class MainActivity extends AppCompatActivity {
intent2 = new Intent(this, UnLoadActivity.class);
intent3 = new Intent(this, InfoActivity.class);
intent4 = new Intent(this, SettingActivity.class);
+
+
}
diff --git a/app/src/main/java/com/example/as_trak/adapter/CargoListAdapter.java b/app/src/main/java/com/example/as_trak/adapter/CargoListAdapter.java
index f32ae48..b2ff828 100644
--- a/app/src/main/java/com/example/as_trak/adapter/CargoListAdapter.java
+++ b/app/src/main/java/com/example/as_trak/adapter/CargoListAdapter.java
@@ -64,9 +64,10 @@ public class CargoListAdapter extends RecyclerView.Adapter {
if (tag != -1) {
diff --git a/app/src/main/java/com/example/as_trak/adapter/LoadInfoAdapter.java b/app/src/main/java/com/example/as_trak/adapter/LoadInfoAdapter.java
index 102d0d8..fbf73b1 100644
--- a/app/src/main/java/com/example/as_trak/adapter/LoadInfoAdapter.java
+++ b/app/src/main/java/com/example/as_trak/adapter/LoadInfoAdapter.java
@@ -1,8 +1,16 @@
package com.example.as_trak.adapter;
+import android.annotation.SuppressLint;
import android.content.Context;
+import android.view.Gravity;
import android.view.LayoutInflater;
+import android.view.MenuItem;
+import android.view.View;
import android.view.ViewGroup;
+import android.widget.LinearLayout;
+import android.widget.PopupMenu;
+import android.widget.PopupWindow;
+import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.databinding.DataBindingUtil;
@@ -41,11 +49,14 @@ public class LoadInfoAdapter extends RecyclerView.Adapter call.deleteCargoInfo(position));
+ // binding.itemLoadD.setOnClickListener(v -> call.deleteCargoInfo(position));
binding.itemLoadU.setOnLongClickListener(v -> {
- call.updateCargoInfo(position);
+ // call.updateCargoInfo(position);
+
+ showPopupMenu(v, position);
+ // showPopupWindow(v);
return true;
});
}
@@ -69,8 +80,30 @@ public class LoadInfoAdapter extends RecyclerView.Adapter dismiss());
diff --git a/app/src/main/java/com/example/as_trak/dialog/TipDialog.java b/app/src/main/java/com/example/as_trak/dialog/TipDialog.java
new file mode 100644
index 0000000..23b0e36
--- /dev/null
+++ b/app/src/main/java/com/example/as_trak/dialog/TipDialog.java
@@ -0,0 +1,54 @@
+package com.example.as_trak.dialog;
+
+
+import android.app.Dialog;
+import android.content.Context;
+import android.database.Observable;
+import android.media.MediaPlayer;
+import android.os.Vibrator;
+import android.view.LayoutInflater;
+
+import androidx.annotation.NonNull;
+import androidx.databinding.DataBindingUtil;
+import androidx.databinding.ObservableBoolean;
+import androidx.databinding.ViewDataBinding;
+
+import com.example.as_trak.R;
+import com.example.as_trak.databinding.DialogTipBinding;
+
+public class TipDialog extends Dialog {
+ private MediaPlayer music;
+ private MediaPlayer musicSuccess;
+ private Vibrator vibrator;
+ private ObservableBoolean state;
+ private DialogTipBinding binding;
+
+ public TipDialog(@NonNull Context context) {
+ super(context, R.style.dialog_style);
+ music = MediaPlayer.create(context, R.raw.error);
+ musicSuccess = MediaPlayer.create(context, R.raw.success);
+ vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
+ binding = DataBindingUtil.inflate(LayoutInflater.from(context), R.layout.dialog_tip, null, false);
+ setContentView(binding.getRoot());
+ state = new ObservableBoolean();
+ setCanceledOnTouchOutside(false);
+ binding.setState(state);
+ binding.tipDialogOver.setOnClickListener(v -> dismiss());
+ }
+
+
+ public void showError(String msg) {
+ super.show();
+ music.start();
+ vibrator.vibrate(500); // 震动1/2秒
+ state.set(false);
+ binding.toastMsg.setText(msg);
+ }
+
+ public void showSuccess(String msg) {
+ super.show();
+ musicSuccess.start();
+ state.set(true);
+ binding.toastMsg.setText(msg);
+ }
+}
diff --git a/app/src/main/res/drawable/bg_suecss.xml b/app/src/main/res/drawable/bg_suecss.xml
new file mode 100644
index 0000000..4b3fbed
--- /dev/null
+++ b/app/src/main/res/drawable/bg_suecss.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_load_scan.xml b/app/src/main/res/layout/activity_load_scan.xml
index 91173c5..e19bba0 100644
--- a/app/src/main/res/layout/activity_load_scan.xml
+++ b/app/src/main/res/layout/activity_load_scan.xml
@@ -51,7 +51,7 @@
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
- android:text="@{data.takeoffDate + data.takeoffTime}"
+ android:text='@{data.takeoffDate+" "+data.takeoffTime}'
android:textSize="20sp" />
-
-
-
-
-
+ android:text="装载时间"
+ android:textSize="14sp" />
+
+
@@ -172,45 +156,31 @@
-
+
+
+ android:textStyle="bold" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_tip.xml b/app/src/main/res/layout/dialog_tip.xml
new file mode 100644
index 0000000..7b41fd7
--- /dev/null
+++ b/app/src/main/res/layout/dialog_tip.xml
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_cargo_list.xml b/app/src/main/res/layout/item_cargo_list.xml
index e1d678a..97b4e98 100644
--- a/app/src/main/res/layout/item_cargo_list.xml
+++ b/app/src/main/res/layout/item_cargo_list.xml
@@ -16,7 +16,7 @@
android:background="@drawable/select_bg"
android:textStyle="bold"
android:gravity="center"
- android:textSize="16sp"
+ android:textSize="18sp"
android:textColor="@color/black"/>
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_load_info.xml b/app/src/main/res/layout/item_load_info.xml
index cbb4a33..516bf7a 100644
--- a/app/src/main/res/layout/item_load_info.xml
+++ b/app/src/main/res/layout/item_load_info.xml
@@ -26,9 +26,8 @@
@@ -52,29 +50,11 @@
android:layout_width="60dp"
android:layout_height="match_parent"
android:gravity="center"
-
android:text='@{data.loadTime}'
android:textSize="15sp" />
-
-
diff --git a/app/src/main/res/layout/toast_load.xml b/app/src/main/res/layout/toast_load.xml
index e74643c..94104fb 100644
--- a/app/src/main/res/layout/toast_load.xml
+++ b/app/src/main/res/layout/toast_load.xml
@@ -22,4 +22,5 @@
android:textColor="@color/white"
android:gravity="center"
android:textSize="28sp" />
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/popup_menu.xml b/app/src/main/res/menu/popup_menu.xml
new file mode 100644
index 0000000..4965427
--- /dev/null
+++ b/app/src/main/res/menu/popup_menu.xml
@@ -0,0 +1,11 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-hdpi/ic_yes.png b/app/src/main/res/mipmap-hdpi/ic_yes.png
new file mode 100644
index 0000000..a2127c1
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_yes.png differ
diff --git a/app/src/main/res/raw/success.mp3 b/app/src/main/res/raw/success.mp3
new file mode 100644
index 0000000..8dedf6b
Binary files /dev/null and b/app/src/main/res/raw/success.mp3 differ
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
index 7f42339..35dbf81 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -47,6 +47,7 @@
- 0.5
+