[英]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.