簡體   English   中英

如何在 android 工作室的活動之間共享數組列表?

[英]How can I share array lists between activities in android studio?

我正在嘗試構建一個 android 應用程序,但我遇到了問題。 首先,我編寫了一個方法來訪問您的手機 memory 並導入一個 excel 文件,該文件包含兩列,其值代表時間和心率。 我從 excel 讀取數據並將其存儲到數組列表中,該數組列表是DataFitbit類型( DataFitbit是我制作的 class 包含兩個參數,如 ZBF57C906FA7D2BB66D07372E41585D9 文件,時間和時間) 現在我想在其他活動中使用這些數據創建一個圖表,但我認為為了在這兩個活動之間共享我的 arraylist 而編寫的代碼不起作用。 我沒有任何錯誤,但是當我按下創建另一個要在其中創建圖表的活動的按鈕時,應用程序崩潰了。

這是為了在活動之間共享數組列表而編寫的代碼:

Bundle bundle = getIntent().getExtras();
ArrayList<DateFitbit> dateFitbit = (ArrayList<DateFitbit>) bundle.get("arraylist");
ListView listView = findViewById(R.id.listView);
ArrayAdapter<DateFitbit> items = new ArrayAdapter<DateFitbit>(this,android.R.layout.simple_list_item_1);
listView.setAdapter(items);

打開包含圖表的新活動的代碼是:

public void openChartActivity(){
    Intent intent = new Intent(this, ChartActivity.class);
    intent.putExtra("arraylist",dateFitbit);
    startActivity(intent);
}

我第一次嘗試將我的數據查看到列表視圖中,以確保共享已經完成,但正如我所說,有些東西效果不佳。

你對我有什么建議嗎?

您沒有傳遞基本的String ArrayList ,而是為 ArrayList 使用自定義數據類型ArrayList

為此,您需要執行此處提到的操作:

1. 現在,將其傳遞為:

Bundle bundle = new Bundle();
bundle.putSerializable("arraylist",(Serializable) dateFitbit);
intent.putExtra("Bundle",bundle);
startActivity(intent);


2.在接收活動中,獲取為:

Intent intent = getIntent();
Bundle bundle = intent.getBundleExtra("Bundle");
ArrayList<DataFitBit> dateFitbit= (ArrayList<DataFitBit>) bundle.getSerializable("arraylist");

這將保留您的自定義 ArrayList model,然后您可以根據需要使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM