[英]Correlating items from two arraylists in Java
在我的Android應用程序中,我有一個包含類別名稱的微調框(下拉菜單)。 用戶通過名稱選擇類別,例如說“食品和飲料”
這些類別包含在ArrayList categoryNamesArray中
還有另一個ArrayList categoryIDsArray,其中包含類別ID整數。
這兩個匹配項的排序,意味着類別1應該是汽車類別。
當用戶通過名稱選擇類別時,我需要將類別ID發送到數據庫。 我怎樣才能做到這一點。
對於子類別,它變得更加復雜,因為其ID以40開頭。
附加信息:
我從服務器中提取ID,並將其放入一個arraylist中,然后從服務器中提取類別名稱,並將其放入另一個arraylist中。 然后將兩個數組列表放在一個Object []中,並將它們傳遞給需要它們的活動
好吧,您可以從類別類作為主類別和子類別的基類開始
public abstract class Category
{
String name;
String id;
// More common fields;
}
public class MainCategory extends Category
{
//Main Category Specific extra variables and method implementations.
}
public class SubCategory extends Category
{
//sub Category Specific extra variables and method implementations.
}
然后,只需使用ArrayList,因為它既可以使用MainCategory也可以使用SubCategory。
此外,您可以簡單地重寫toString方法並在列表中使用直接對象,以便當用戶選中復選框時,將具有完整的對象供使用。
如果由於遺留原因或其他原因而被限制在ArrayList數據結構中,則可以通過執行以下操作獲取相應的ID
String chosenName; // user selects this
Integer id = categoryIDsArray.get(categoryNamesArray.indexOf(chosenName));
但是,如果您將代碼更改為具有
BiMap<Integer, String>
是雙向映射,使您能夠從名稱中獲取ID,反之亦然。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.