Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.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 如何检索RecyclerView位置_Java_Android_Android Recyclerview_Position - Fatal编程技术网

Java 如何检索RecyclerView位置

Java 如何检索RecyclerView位置,java,android,android-recyclerview,position,Java,Android,Android Recyclerview,Position,我正在尝试获取我的RecyclerView中项目的位置,主要是那些位于[0]、[1]和[2]位置的项目。原因是目前我正在创建一个排行榜,突出得分最高的前三名球员 我曾尝试调用getAdapterPosition(),但我想我用错了 if(holder.getAdapterPosition() == 0) { Glide.with(holder.firstPlace.getContext()) .load(model.getUrl()) .

我正在尝试获取我的
RecyclerView
中项目的位置,主要是那些位于[0]、[1]和[2]位置的项目。原因是目前我正在创建一个排行榜,突出得分最高的前三名球员

我曾尝试调用
getAdapterPosition()
,但我想我用错了

if(holder.getAdapterPosition() == 0)
{
    Glide.with(holder.firstPlace.getContext())
            .load(model.getUrl())
            .into(holder.firstPlace);
}
如果有人能给我指出正确的方向,我将不胜感激。多谢各位

编辑1:

我的用户适配器

public class UserAdapter extends FirestoreRecyclerAdapter<UserModel, UserAdapter.UserViewHolder> {

public UserAdapter(@NonNull FirestoreRecyclerOptions<UserModel> options) {
    super(options);
}

@Override
protected void onBindViewHolder(@NonNull UserAdapter.UserViewHolder holder, int position, @NonNull UserModel model) {

    holder.username.setText(model.getFullName());
    holder.email.setText(model.getEmail());
    holder.score.setText(model.getScore()+"");
    holder.rank.setText(String.valueOf(position + 1));


    Glide.with(holder.userImage.getContext())
            .load(model.getUrl())
            .into(holder.userImage);


    //error here
//        if(holder.getAdapterPosition() == 0)
//        {
//            Glide.with(holder.firstPlace.getContext())
//                    .load(model.getUrl())
//                    .into(holder.firstPlace);
//        }

}


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

public class UserViewHolder extends RecyclerView.ViewHolder {

    CircleImageView userImage;
    TextView username;
    TextView email;
    TextView score;
    TextView rank;

    CircleImageView firstPlace;
    CircleImageView secondPlace;
    CircleImageView thirdPlace;

    public UserViewHolder(@NonNull View itemView) {
        super(itemView);

        userImage = itemView.findViewById(R.id.list_image);
        username = itemView.findViewById(R.id.list_username);
        email = itemView.findViewById(R.id.list_email);
        score = itemView.findViewById(R.id.list_score);
        rank = itemView.findViewById(R.id.leaderboard_position);

        firstPlace = itemView.findViewById(R.id.place1stProfile);
        secondPlace = itemView.findViewById(R.id.place2ndProfile);
        thirdPlace = itemView.findViewById(R.id.place3rdProfile);
    }
}
公共类UserAdapter扩展FirestoreRecyclerAdapter{
公共用户适配器(@NonNull FirestoreRecyclerOptions选项){
超级(期权);
}
@凌驾
受保护的无效onBindViewHolder(@NonNull UserAdapter.UserViewHolder holder,int位置,@NonNull UserModel model){
holder.username.setText(model.getFullName());
holder.email.setText(model.getEmail());
holder.score.setText(model.getScore()+);
holder.rank.setText(String.valueOf(position+1));
Glide.with(holder.userImage.getContext())
.load(model.getUrl())
.into(holder.userImage);
//这里出错
//if(holder.getAdapterPosition()==0)
//        {
//Glide.with(holder.firstPlace.getContext())
//.load(model.getUrl())
//.进入(持有人排名第一);
//        }
}
@非空
@凌驾
public UserAdapter.UserViewHolder onCreateViewHolder(@NonNull ViewGroup父级,int-viewType){
View View=LayoutInflater.from(parent.getContext()).flate(R.layout.list\u leadboard\u single,parent,false);
返回新的UserViewHolder(视图);
}
公共类UserViewHolder扩展了RecyclerView.ViewHolder{
CircleImageView用户图像;
文本视图用户名;
TextView电子邮件;
文本视图分数;
文本视图等级;
CircleImageView排名第一;
CircleImageView排名第二;
圆形图像视图第三个位置;
public UserViewHolder(@NonNull View itemView){
超级(项目视图);
userImage=itemView.findviewbyd(R.id.list\u image);
username=itemView.findviewbyd(R.id.list\u用户名);
email=itemView.findviewbyd(R.id.list\u email);
分数=itemView.findViewById(R.id.list\U分数);
排名=itemView.findViewById(R.id.排行榜位置);
firstPlace=itemView.findviewbyd(R.id.place1stProfile);
secondPlace=itemView.findviewbyd(R.id.place2ndProfile);
thirdPlace=itemView.findViewById(R.id.place3rdProfile);
}
}
list\u leadboard\u single.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:layout_marginTop="8dp"
android:orientation="horizontal"
android:background="#EFCDB4">

<RelativeLayout
    android:layout_width="32dp"
    android:layout_height="match_parent"
    android:padding="5dp"
    android:background="#FFE5C6"
    >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/leaderboard_position"
        android:textStyle="bold"
        android:textColor="#000"
        android:text="##"
        android:layout_centerInParent="true"
        android:textSize="18sp"
        />
</RelativeLayout>

<de.hdodenhof.circleimageview.CircleImageView
    android:paddingTop="5dp"
    android:layout_width="75dp"
    android:layout_height="75dp"
    android:id="@+id/list_image"
    android:src="@mipmap/ic_launcher_round"
    android:scaleType="centerCrop"
    android:layout_centerVertical="true"
    android:layout_marginLeft="15dp"
    android:layout_toRightOf="@id/leaderboard_position"
    />

<LinearLayout
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:layout_gravity="center_vertical"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/list_username"
        android:layout_width="173dp"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_centerVertical="true"

        android:layout_marginTop="26dp"
        android:fontFamily="@font/poppinsmedium"
        android:layout_toRightOf="@id/list_image"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:text="Username"
        android:textColor="#000"
        android:textSize="18sp" />

<TextView
    android:id="@+id/list_email"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Email"
    android:layout_toRightOf="@+id/list_username"
    android:layout_centerVertical="true"
    android:layout_marginLeft="0dp"
    android:textColor="#000"
    android:visibility="gone"
    />
</LinearLayout>

<LinearLayout
    android:layout_width="80dp"
    android:layout_height="80dp"
    android:gravity="center"
    android:orientation="vertical">

    <TextView
        android:layout_marginTop="0dp"
    android:id="@+id/list_score"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Score"
        android:textSize="25sp"
    android:textColor="#000"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="PTS"
        android:textStyle="bold"
        android:fontFamily="@font/poppinsbold"
        android:textSize="15sp"
        android:textColor="#000"/>

    <ImageView
        android:layout_width="30dp"
        android:layout_height="30dp"
        app:srcCompat="@drawable/ic_blood_drop"
        android:visibility="gone"
        />

</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<androidx.core.widget.NestedScrollView 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Leaderboard"
android:background="#790604">

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

    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
        android:layout_marginBottom="10dp"
        android:layout_marginTop="15dp"
        >

    <TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textAlignment="center"
    android:text="L E A D E R B O A R D"
        android:fontFamily="@font/poppinsbold"
    android:textColor="#ffffff"
    android:textSize="18sp"
    android:textStyle="bold" />

</LinearLayout>
    
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="3"
        android:layout_marginBottom="16dp"
        android:minHeight="150dp">

    <RelativeLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:layout_gravity="center_vertical"
        >

        <de.hdodenhof.circleimageview.CircleImageView
            android:id="@+id/place2ndProfile"
            android:layout_width="90dp"
            android:layout_height="90dp"
            android:layout_marginTop="16dp"
            android:scaleType="centerCrop"
            android:layout_centerHorizontal="true"
            android:src="@mipmap/ic_launcher_round"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="16sp"
            android:textStyle="bold"
            android:layout_below="@id/place2ndProfile"
            android:fontFamily="@font/poppinsbold"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="8dp"
            android:textColor="#ffffff"
            android:text="2ND"/>

    </RelativeLayout>

        <RelativeLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_weight="1">

            <de.hdodenhof.circleimageview.CircleImageView
                android:id="@+id/place1stProfile"
                android:layout_width="110dp"
                android:layout_height="110dp"
                android:layout_marginTop="16dp"
                android:scaleType="centerCrop"
                android:layout_centerHorizontal="true"
                android:src="@mipmap/ic_launcher_round"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="16sp"
                android:textStyle="bold"
                android:textColor="#ffffff"
                android:fontFamily="@font/poppinsbold"
                android:layout_below="@id/place1stProfile"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="8dp"
                android:text="1ST"/>
        </RelativeLayout>

        <RelativeLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_weight="1">
            <de.hdodenhof.circleimageview.CircleImageView
                android:id="@+id/place3rdProfile"
                android:src="@mipmap/ic_launcher_round"
                android:layout_width="90dp"
                android:layout_height="90dp"
                android:layout_marginTop="16dp"
                android:scaleType="centerCrop"
                android:layout_centerHorizontal="true"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="16sp"
                android:textStyle="bold"
                android:textColor="#FFFFFF"
                android:fontFamily="@font/poppinsbold"
                android:layout_below="@id/place3rdProfile"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="8dp"
                android:text="3RD"/>
        </RelativeLayout>



    </LinearLayout>

<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/leaderboard_list"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

</LinearLayout>

</androidx.core.widget.NestedScrollView>

fragment\u leadboard.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:layout_marginTop="8dp"
android:orientation="horizontal"
android:background="#EFCDB4">

<RelativeLayout
    android:layout_width="32dp"
    android:layout_height="match_parent"
    android:padding="5dp"
    android:background="#FFE5C6"
    >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/leaderboard_position"
        android:textStyle="bold"
        android:textColor="#000"
        android:text="##"
        android:layout_centerInParent="true"
        android:textSize="18sp"
        />
</RelativeLayout>

<de.hdodenhof.circleimageview.CircleImageView
    android:paddingTop="5dp"
    android:layout_width="75dp"
    android:layout_height="75dp"
    android:id="@+id/list_image"
    android:src="@mipmap/ic_launcher_round"
    android:scaleType="centerCrop"
    android:layout_centerVertical="true"
    android:layout_marginLeft="15dp"
    android:layout_toRightOf="@id/leaderboard_position"
    />

<LinearLayout
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:layout_gravity="center_vertical"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/list_username"
        android:layout_width="173dp"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_centerVertical="true"

        android:layout_marginTop="26dp"
        android:fontFamily="@font/poppinsmedium"
        android:layout_toRightOf="@id/list_image"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:text="Username"
        android:textColor="#000"
        android:textSize="18sp" />

<TextView
    android:id="@+id/list_email"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Email"
    android:layout_toRightOf="@+id/list_username"
    android:layout_centerVertical="true"
    android:layout_marginLeft="0dp"
    android:textColor="#000"
    android:visibility="gone"
    />
</LinearLayout>

<LinearLayout
    android:layout_width="80dp"
    android:layout_height="80dp"
    android:gravity="center"
    android:orientation="vertical">

    <TextView
        android:layout_marginTop="0dp"
    android:id="@+id/list_score"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Score"
        android:textSize="25sp"
    android:textColor="#000"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="PTS"
        android:textStyle="bold"
        android:fontFamily="@font/poppinsbold"
        android:textSize="15sp"
        android:textColor="#000"/>

    <ImageView
        android:layout_width="30dp"
        android:layout_height="30dp"
        app:srcCompat="@drawable/ic_blood_drop"
        android:visibility="gone"
        />

</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<androidx.core.widget.NestedScrollView 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Leaderboard"
android:background="#790604">

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

    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
        android:layout_marginBottom="10dp"
        android:layout_marginTop="15dp"
        >

    <TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textAlignment="center"
    android:text="L E A D E R B O A R D"
        android:fontFamily="@font/poppinsbold"
    android:textColor="#ffffff"
    android:textSize="18sp"
    android:textStyle="bold" />

</LinearLayout>
    
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="3"
        android:layout_marginBottom="16dp"
        android:minHeight="150dp">

    <RelativeLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:layout_gravity="center_vertical"
        >

        <de.hdodenhof.circleimageview.CircleImageView
            android:id="@+id/place2ndProfile"
            android:layout_width="90dp"
            android:layout_height="90dp"
            android:layout_marginTop="16dp"
            android:scaleType="centerCrop"
            android:layout_centerHorizontal="true"
            android:src="@mipmap/ic_launcher_round"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="16sp"
            android:textStyle="bold"
            android:layout_below="@id/place2ndProfile"
            android:fontFamily="@font/poppinsbold"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="8dp"
            android:textColor="#ffffff"
            android:text="2ND"/>

    </RelativeLayout>

        <RelativeLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_weight="1">

            <de.hdodenhof.circleimageview.CircleImageView
                android:id="@+id/place1stProfile"
                android:layout_width="110dp"
                android:layout_height="110dp"
                android:layout_marginTop="16dp"
                android:scaleType="centerCrop"
                android:layout_centerHorizontal="true"
                android:src="@mipmap/ic_launcher_round"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="16sp"
                android:textStyle="bold"
                android:textColor="#ffffff"
                android:fontFamily="@font/poppinsbold"
                android:layout_below="@id/place1stProfile"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="8dp"
                android:text="1ST"/>
        </RelativeLayout>

        <RelativeLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_weight="1">
            <de.hdodenhof.circleimageview.CircleImageView
                android:id="@+id/place3rdProfile"
                android:src="@mipmap/ic_launcher_round"
                android:layout_width="90dp"
                android:layout_height="90dp"
                android:layout_marginTop="16dp"
                android:scaleType="centerCrop"
                android:layout_centerHorizontal="true"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="16sp"
                android:textStyle="bold"
                android:textColor="#FFFFFF"
                android:fontFamily="@font/poppinsbold"
                android:layout_below="@id/place3rdProfile"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="8dp"
                android:text="3RD"/>
        </RelativeLayout>



    </LinearLayout>

<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/leaderboard_list"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

</LinearLayout>

</androidx.core.widget.NestedScrollView>

您应该只在
ViewHolder
中调用
holder.getAdapterPosition
;而只需使用
onBindViewHolder()中传递的参数
position


你能发布你的
适配器
代码给
RecyclerView
吗?可以@IvanGarzadone!快速刷新后你应该可以看到它。我尝试过这个@Zain。它给了我一个错误并使应用程序崩溃
java.lang.NullPointerException:尝试调用虚拟方法'android.content.Context de.hdodenhof.circleimage'com.example.loginregisterfire.Adapter.UserAdapter.onBindViewHolder(UserAdapter.java:49)上的空对象引用上的view.CircleImageView.getContext()
您可以共享
R.layout.列出排行榜\u单个
版面吗?或者您可以特别检查版面中的
CircleImageView
ID
是否与
ViewHolder
classDone]匹配!但是对于第一、第二和第三名的突出显示,它是在MainActivity.xml中定义的。在
上方cyclerView
。干得好!您仍然遇到任何错误吗?是的,与上面相同。是因为它是在
R.layout.list\u leadboard\u single
之外定义的,因为只有xml正在膨胀。