2017-06-27 86 views
0

错误是硬道理“(名称)”和UsersViewHolder.setName(users.getName());,只有.setName我无法解决这个错误。有人能帮我吗?

它说,使“静态”“的setName(字符串名称)”中的倒数第三条,但如果我这样做,倒数第二个条纹中的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); 

     } 
    } 
} 
+0

请发送您收到的例外,请检查'logcat' – Dayan

回答

3

我想你需要

viewHolder.setName(users.getName()); 

,而不是

UsersViewHolder.setName(users.getName()); 

你试图使用ViewHolder静态参考,并由recyclerview适配器创建的类没有实例。

+0

好。它的工作原理,谢谢,但最后一个条纹中的最后一个“名称”仍然给出错误 –

+0

ok。我解决了它。非常感谢你。你救了我的命 :) –

相关问题