Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我的代码导致我的应用程序在单击“时崩溃”;“找朋友”;在我的聊天应用程序菜单上,_Java_Android_Android Recyclerview - Fatal编程技术网

Java 我的代码导致我的应用程序在单击“时崩溃”;“找朋友”;在我的聊天应用程序菜单上,

Java 我的代码导致我的应用程序在单击“时崩溃”;“找朋友”;在我的聊天应用程序菜单上,,java,android,android-recyclerview,Java,Android,Android Recyclerview,此代码导致错误。我猜当适配器开始监听该点时 package com.example.wherechat; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import androidx.annotation.NonNull; import an

此代码导致错误。我猜当适配器开始监听该点时

package com.example.wherechat;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.firebase.ui.database.FirebaseRecyclerOptions;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
//import com.google.firebase.database.Query;
import com.google.firebase.database.Query;
import com.squareup.picasso.Picasso;

import de.hdodenhof.circleimageview.CircleImageView;

public class FindFriendsActivity extends AppCompatActivity
{
    private Toolbar mToolBar;
    private RecyclerView FindFriendRecyclerList;
    private DatabaseReference UsersRef;


    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_find_friends);

        UsersRef= FirebaseDatabase.getInstance().getReference().child("Users");
        FindFriendRecyclerList=(RecyclerView)findViewById(R.id.find_friends_recycler_list);
        FindFriendRecyclerList.setLayoutManager(new LinearLayoutManager(this));

        mToolBar=(Toolbar)findViewById(R.id.find_friends_toolbar);

        setSupportActionBar(mToolBar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setTitle("Find Friends");
    }

    @Override
    protected void onStart()
    {
        super.onStart();
        Query query = FirebaseDatabase
                .getInstance()
                .getReference().child("Users");

        FirebaseRecyclerOptions<contacts> options= new FirebaseRecyclerOptions.Builder<contacts>().
                setQuery(UsersRef,contacts.class)
                .build();

        FirebaseRecyclerAdapter<contacts,FindFriendsViewHolder>adapter=
                new FirebaseRecyclerAdapter<contacts,FindFriendsViewHolder>(options){
            @Override
            protected void onBindViewHolder(@NonNull FindFriendsViewHolder findFriendsViewHolder, int i, @NonNull contacts contacts)
            {
                findFriendsViewHolder.userName.setText((contacts.getName()));
                findFriendsViewHolder.userStatus.setText(contacts.getStatus());
                Picasso.get().load(contacts.getImage()).placeholder(R.drawable.profile_image).into(findFriendsViewHolder.profileImage);
             }

            @   NonNull
            @Override
            public FindFriendsViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType)
            {
               View view=LayoutInflater.from(parent.getContext()).inflate(R.layout.users_display_layout,parent,false);
                FindFriendsViewHolder viewHolder=new FindFriendsViewHolder(view);
                return  viewHolder;
            }
        };

        FindFriendRecyclerList.setAdapter(adapter);
        adapter.startListening();

    }

    public static class FindFriendsViewHolder extends RecyclerView.ViewHolder
    {
        TextView userName,userStatus;
        CircleImageView profileImage;

        public FindFriendsViewHolder(@NonNull View itemView)
        {
            super(itemView);
            userName=itemView.findViewById(R.id.user_profile_name);
            userStatus=itemView.findViewById(R.id.user_online_status);
            profileImage=itemView.findViewById(R.id.users_profile_image);

        }
    }
}
我的应用程序界面:

      https://i.stack.imgur.com/J7X9T.png
这是我的XML文件。即使我的用户名和用户状态为TextView,它也显示了转换错误

 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="match_parent"
 android:layout_height="wrap_content">


 <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="15dp"
    android:orientation="horizontal">


    <de.hdodenhof.circleimageview.CircleImageView
        android:id="@+id/users_profile_image"
        android:layout_width="85dp"
        android:layout_height="85dp"
        android:src="@drawable/profile_image"/>


     <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:orientation="vertical">


       <LinearLayout
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:orientation= "horizontal">

           <TextView
               android:id="@+id/user_profile_name"
               android:layout_width="200dp"
               android:layout_height="wrap_content"
               android:text="user name"
               android:textAlignment="textStart"
               android:textSize="18sp"
               android:textStyle="bold"
               />

           <ImageView
               android:id="@+id/user_online_status"
               android:layout_width="18dp"
               android:layout_height="18dp"
               android:layout_marginTop="5dp"
               android:src="@drawable/online"
               android:visibility="invisible"/>
       </LinearLayout>


       <TextView
           android:id="@+id/user_status"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:text="user status"
           android:textAlignment="textStart"
           android:textSize="16sp"
          />

      </LinearLayout>
   </LinearLayout>
 </RelativeLayout>


在xml上,将用户名或用户状态定义为图像视图,将代码定义为文本视图。

主要原因如下

 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="match_parent"
 android:layout_height="wrap_content">


 <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="15dp"
    android:orientation="horizontal">


    <de.hdodenhof.circleimageview.CircleImageView
        android:id="@+id/users_profile_image"
        android:layout_width="85dp"
        android:layout_height="85dp"
        android:src="@drawable/profile_image"/>


     <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:orientation="vertical">


       <LinearLayout
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:orientation= "horizontal">

           <TextView
               android:id="@+id/user_profile_name"
               android:layout_width="200dp"
               android:layout_height="wrap_content"
               android:text="user name"
               android:textAlignment="textStart"
               android:textSize="18sp"
               android:textStyle="bold"
               />

           <ImageView
               android:id="@+id/user_online_status"
               android:layout_width="18dp"
               android:layout_height="18dp"
               android:layout_marginTop="5dp"
               android:src="@drawable/online"
               android:visibility="invisible"/>
       </LinearLayout>


       <TextView
           android:id="@+id/user_status"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:text="user status"
           android:textAlignment="textStart"
           android:textSize="16sp"
          />

      </LinearLayout>
   </LinearLayout>
 </RelativeLayout>
java.lang.ClassCastException: 无法将androidx.appcompat.widget.AppCompatImageView强制转换为 android.widget.TextView

这意味着您正在将
ImageView
转换为
TextView
。那么问题是什么:xml中的问题。问题是
userName
userStatus
的id被交换。检查您的xml

更新的答案


看,你弄错了。在xml中,您在
ImageView
中使用user\u online\u statusid,但在
FindFriendsViewHolder
中,您使用的是
userStatus=itemView.findViewById(R.id.user\u online\u status)并查看您声明的userStatus为textView,但它将是imageView

看起来您弄错了。在xml中,您使用的是
ImageView
中的user\u online\u status id,但在
FindFriendsViewHolder
中,您使用的是
userStatus=itemView.findViewById(R.id.user\u online\u status)
并看到您将userStatus声明为textView,但它将是ImageView非常感谢。可能只是输入错误。您在
findViewById
 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="match_parent"
 android:layout_height="wrap_content">


 <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="15dp"
    android:orientation="horizontal">


    <de.hdodenhof.circleimageview.CircleImageView
        android:id="@+id/users_profile_image"
        android:layout_width="85dp"
        android:layout_height="85dp"
        android:src="@drawable/profile_image"/>


     <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:orientation="vertical">


       <LinearLayout
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:orientation= "horizontal">

           <TextView
               android:id="@+id/user_profile_name"
               android:layout_width="200dp"
               android:layout_height="wrap_content"
               android:text="user name"
               android:textAlignment="textStart"
               android:textSize="18sp"
               android:textStyle="bold"
               />

           <ImageView
               android:id="@+id/user_online_status"
               android:layout_width="18dp"
               android:layout_height="18dp"
               android:layout_marginTop="5dp"
               android:src="@drawable/online"
               android:visibility="invisible"/>
       </LinearLayout>


       <TextView
           android:id="@+id/user_status"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:text="user status"
           android:textAlignment="textStart"
           android:textSize="16sp"
          />

      </LinearLayout>
   </LinearLayout>
 </RelativeLayout>