简体   繁体   English

我无法解决此错误。 有人能帮我吗?

[英]I can't solve this error. Can someone help me?

The error is in the last word "(name)" and UsersViewHolder.setName(users.getName()); 错误出现在最后一个单词“(name)”和UsersViewHolder.setName(users.getName()); , only .setName ,仅.setName

It says to make "static" "setName(String name)" in the third to last stripe, but if I do it, mView in the penultimate stripe gives an error. 它说要在倒数第三个数据条中制作“静态”“ setName(String name)”,但是如果执行此操作,倒数第二个数据条中的mView会出现错误。

package com.app.andre.easychat;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.TextView;
import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import org.w3c.dom.Text;
public class UsersActivity extends AppCompatActivity {
private Toolbar mToolbar;
private RecyclerView users_list;
private DatabaseReference mdatabase;

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

    mToolbar= (Toolbar) findViewById(R.id.user_appbar);
    setSupportActionBar(mToolbar);
    getSupportActionBar().setTitle("Tutti gli utenti");
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    mdatabase= FirebaseDatabase.getInstance().getReference().child("Users");

    users_list = (RecyclerView) findViewById(R.id.users_list);
    users_list.setHasFixedSize(true);
    users_list.setLayoutManager(new LinearLayoutManager(this) );
}

@Override
protected void onStart() {
    super.onStart();
    FirebaseRecyclerAdapter<Users, UsersViewHolder> FirebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Users, UsersViewHolder>(
            Users.class,
            R.layout.name_list,
            UsersViewHolder.class,
            mdatabase
    ) {
        @Override
        protected void populateViewHolder(UsersViewHolder viewHolder, Users users, int position) {
            UsersViewHolder.setName(users.getName());
        }
    };

    users_list.setAdapter(FirebaseRecyclerAdapter);
}


public static class UsersViewHolder extends RecyclerView.ViewHolder {

    View mView;
    public UsersViewHolder(View itemView) {
        super(itemView);
        mView = itemView;}

        public  void setName(String name) {

            TextView mUsernameView = (TextView) mView.findViewById(R.id.user_single_name);
            mUsernameView.getText(name);

        }
    }
}

I think you need 我觉得你需要

viewHolder.setName(users.getName());

instead of 代替

UsersViewHolder.setName(users.getName());

You were trying to use the ViewHolder as static reference and not the instance of the class created by the recyclerview adapter. 您试图将ViewHolder用作静态引用,而不是使用recyclerview适配器创建的类的实例。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM