Android Firebase无法将类型java.util.HashMap的值转换为String

亚米斯

我试图在片段上使用数组适配器使用listview,但是当尝试使用本教程进行操作时,每次打开该特定片段时它都会崩溃。我正在尝试将Firebase上的数据显示到listview中,但是每次打开它时都会崩溃。

这是我的数据库 在此处输入图片说明

从图片中,我的计划是仅显示用户的电子邮件和名称,而不包括类型,但我稍后再讲。

这是我的代码

public class memberFragment extends Fragment {
private ListView mylistView;
private DatabaseReference mDatabase;
ArrayList<String> myArrayList = new ArrayList<>();
FirebaseDatabase myFirebase;


public memberFragment() {
    // Required empty public constructor
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_member2, container, false);
    mDatabase = FirebaseDatabase.getInstance().getReference().child("Accounts").child("Users");
    final ArrayAdapter<String> myArrayAdapter = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,myArrayList);
     mylistView = (ListView)view.findViewById(R.id.listView);
     mylistView.setAdapter(myArrayAdapter);


    mDatabase.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {
            String myChildValues = dataSnapshot.getValue(String.class);
            myArrayList.add(myChildValues);
            myArrayAdapter.notifyDataSetChanged();


        }

        @Override
        public void onChildChanged(DataSnapshot dataSnapshot, String s) {
            myArrayAdapter.notifyDataSetChanged();

        }

        @Override
        public void onChildRemoved(DataSnapshot dataSnapshot) {

        }

        @Override
        public void onChildMoved(DataSnapshot dataSnapshot, String s) {

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });
    // Inflate the layout for this fragment
    return view;

有什么想法可能导致问题吗?我试图搜索并发现它与哈希图或地图有关,但是我不知道如何将其放在数组中?

亚历克斯·莫莫

可以使用模型类来实现此目的,也可以使用最简单的方法使用String该类。为此,您可以使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference usersRef = rootRef.child("Accounts").child("Users");
ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String email = ds.child("email").getValue(String.class);
            String name = ds.child("name").getValue(String.class);
            Log.d("TAG", email + " / " + name);
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
usersRef.addListenerForSingleValueEvent(eventListener);

您的输出将是:

[email protected] / idk
//and so on

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Android-Firebase-无法将类型java.util.HashMap的值转换为String

无法将 java.util.HashMap 类型的值转换为 String 但代码中没有 hashmap?

无法将类型java.util.HashMap的值转换为String

Firebase“无法将类型为java.util.HashMap的值转换为int”

无法将类型java.util.HashMap的值转换为String。将字符串转换为地图

java.util.HashMap 无法转换(android studio、firebase、java)

Android java.util.hashmap无法转换为java.util.list

将java.util.Properties转换为HashMap <String,String>

无法将 java.util.Date 类型的值转换为 String

Firestore无法反序列化对象。无法将类型java.util.HashMap的值转换为Date

Firebase DatabaseException:无法将 java.util.ArrayList 类型的对象转换为我的类型 Object

Android HashMap java.lang.ClassCastException:无法将java.lang.Integer强制转换为java.util.Map $ Entry

“无法将 'java.lang.String' 类型的值转换为所需的 'java.util.List'。” 或者如何将 Python 列表转换为 Java.util 列表?

java.util.HashMap无法转换为com.google.android.gms.maps.model.LatLng

无法将 java.lang.String[] 类型的属性值转换为所需的类型 java.util.List

无法反序列化对象。无法将类型java.util.Date的值转换为String

如何从java.util.HashMap转换为android.content.ContentValues?

Android MultiSelectListPreference,java.lang.String无法强制转换为java.util.Set

无法将java.util.HashMap强制转换为java.util.ArrayList

使用Firebase RecyclerAdapter时,“无法将java.lang.String类型的对象转换为com.android.projectrc.Listing类型”

Thymeleaf和SpringBoot-无法将类型[java.lang.String]的属性值转换为必需的类型[java.util.Date]作为prope

无法将 HashMap 类型的值转换为 String

无法在 swagger 上将“java.lang.String”类型的值转换为所需类型“java.util.Date”

java.util.HashMap无法强制转换为Object

如何将“ java.lang.String”类型的值转换为所需的“ java.util.Date”类型?

无法将类型为java.lang.String的对象转换为类型android.net.Uri来获取对象的值

无法将类型“ java.util.ArrayList”的属性值转换为所需的类型“ javax.xml.ws.handler.HandlerResolver”

如何获取这个firebase结构中的数据?错误:无法将 java.util.ArrayList 类型的对象转换为 QuotationOrder 类型的模型

无法在Android上将类型<java.lang.String类型的值<br转换为JSONObject