gpt4 book ai didi

java - 使用 Android Studio 和 Firebase 在 Spinner 中获取其选定子值的键

转载 作者:太空宇宙 更新时间:2023-11-04 09:24:14 25 4
gpt4 key购买 nike

我试图通过允许用户从 Spinner 中进行选择来获取某个子值的键。

微调器有“Product_Name”值作为其选择。通过选择其中一个,程序应该获取其 key 并使用它来获取另一个子值以供其他用途。

示例:

产品-> -LoUXnfUCEj4k4A3dkte-> 产品名称:“牛排”

通过在微调器中选择“Steak”,我必须获得“-LoUXnfUCEj4k4A3dkte”

    databaseRefSelectItem = FirebaseDatabase.getInstance().getReference("PRODUCTS");

final DatabaseReference mDatabase = databaseRefSelectItem;
mDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull final DataSnapshot dataSnapshot) {
//We create an array list to hold the values brought from the database and show them in the spinner
final List<String> titleList = new ArrayList<String>();

for(final DataSnapshot snapshot : dataSnapshot.getChildren()) {

titleProduct = snapshot.child("Product_Name").getValue(String.class);

//populate the spinner with that array list
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(AddTransactionActivity.this, android.R.layout.simple_spinner_item, titleList);
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
selectProduct.setAdapter(arrayAdapter);

titleList.add(titleProduct);

//Click event for each spinner element
selectProduct.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
//pass the reference from that value into another snapshot in order to query those values, here you need to get your node id and inside just get your number , name and so on
selectItem = titleList.get(i);

mDatabase.child(selectItem).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(final DataSnapshot dataSnapshot2) {

key = dataSnapshot2.getKey();

currentItemStock = dataSnapshot2.child(key).child("Current_Stock").getValue(String.class);
currentStk.setText(key);

}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}

@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});

如何获得“-LoUXnfUCEj4k4A3dkte”?

注释:-LoUXnfUCEj4k4A3dkte是随机生成的。

最佳答案

使用.getKey()获取快照的 key ,例如:

for(final DataSnapshot snapshot : dataSnapshot.getChildren()) {
if (snapshot.child("Product_Name").getValue(String.class).equals("Steak")){
String theKey = snapshot.getKey(); //This will return -LoUXnfUCEj4k4A3dkte
}
}

将返回该引用处快照的键。

关于java - 使用 Android Studio 和 Firebase 在 Spinner 中获取其选定子值的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57926561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com