From 17bb52d9337328323f5f8d2a806cf4f445673b4a Mon Sep 17 00:00:00 2001 From: whycq <913841844@qq.com> Date: 星期四, 06 二月 2025 09:20:55 +0800 Subject: [PATCH] # --- app/src/main/java/com/example/agvcontroller/StartActivity.java | 80 +++++++++++++++++++++++++++++++++++----- 1 files changed, 70 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/example/agvcontroller/StartActivity.java b/app/src/main/java/com/example/agvcontroller/StartActivity.java index adb74d2..9a582bc 100644 --- a/app/src/main/java/com/example/agvcontroller/StartActivity.java +++ b/app/src/main/java/com/example/agvcontroller/StartActivity.java @@ -2,40 +2,62 @@ import android.content.Context; import android.content.Intent; +import android.content.SharedPreferences; import android.os.Bundle; import android.util.Log; import android.view.View; +import android.widget.Button; import androidx.appcompat.app.AppCompatActivity; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.example.agvcontroller.socket.SocketManager; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; +import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; public class StartActivity extends AppCompatActivity { private RecyclerView recyclerView; - private List<Item> items; + private List<AGVCar> items; private ItemAdapter adapter; + private Button addItem; + private SharedPreferences sharedPreferences; SocketManager socketManager; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_start); + addItem = findViewById(R.id.addbtn); + addItem.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(StartActivity.this, EditeActivity.class); + startActivity(intent); + } + }); + + + sharedPreferences = getSharedPreferences("AGVControllerPrefs", MODE_PRIVATE); + + // Load items from SharedPreferences + items = loadItemsFromSharedPreferences(); + + +// items = new ArrayList<>(); recyclerView = findViewById(R.id.recyclerView); recyclerView.setLayoutManager(new LinearLayoutManager(this)); - - items = new ArrayList<>(); - adapter = new ItemAdapter(items); recyclerView.setAdapter(adapter); @@ -47,7 +69,16 @@ public void onItemClick(View view, int position) { Context context = view.getContext(); Intent intent = new Intent(context,MainActivity.class); - intent.putExtra("message", items.get(position).getIp()); + AGVCar item = items.get(position); +// String ip = items.get(position).getIp(); +// String clientId = items.get(position).getClientId(); +// String agvNo = items.get(position).getAgvNo(); + + +// intent.putExtra("ip", ip); +// intent.putExtra("agvNo", agvNo); +// intent.putExtra("clientId", clientId); + intent.putExtra("item", item); startActivityForResult(intent,1); } }); @@ -55,14 +86,43 @@ socketManager.startServer(8022); } + private List<AGVCar> loadItemsFromSharedPreferences() { + Gson gson = new Gson(); + String json = sharedPreferences.getString("items", null); + Log.i("SharedPreferences", "Loading items from shared preferences: " + json); + if (json != null) { + Type type = new TypeToken<List<AGVCar>>(){}.getType(); + return gson.fromJson(json, type); + } + return new ArrayList<>(); + } + @Subscribe(threadMode = ThreadMode.MAIN) - public void onDeviceConnected(Item deviceAddress) { - Log.i("EventBus", "Received device connected: " + deviceAddress); - items.add(new Item("1",deviceAddress.getIp(),"3")); - if (items.size() > 0) { - for (Item item : items) { + public void onDeviceConnected(AGVCar car) { + Log.i("EventBus", "Received device connected: " + car); + + + if (!items.isEmpty()) { + int sameIp = 0; + for (AGVCar item : items) { + if (item.getIp().equals(car.getIp())) { + item.setAgvNo(car.getAgvNo().isEmpty() ? car.getAgvNo() : item.getAgvNo()); + item.setPort(car.getPort()); + item.setClientId(car.getClientId()); + item.setStatus(car.getStatus()); + item.setBattery(car.getBattery() != 0 ? car.getBattery() : item.getBattery()); + adapter.notifyItemChanged(items.indexOf(item)); + MainActivity.upClient(car); + sameIp++; + } Log.i("Item",item.getIp()); + Log.i("Item",item.getClientId()); } + if (sameIp == 0) { + items.add(car); + } + } else { + items.add(car); } adapter.notifyDataSetChanged(); } -- Gitblit v1.9.1