我从我的putextras获取数据,问题是dosnt显示数据准确,它似乎显示列表中前一个元素的数据,或者有时列表中的前两个元素。
这是我正在做什么来保存数据并将其放入额外的
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mListView = findViewById(R.id.list_view_database);
userSearchView = findViewById(R.id.searchViewUsuario);
mDatabase = FirebaseDatabase.getInstance().getReference();
Query query = FirebaseDatabase.getInstance()
.getReference()
.child("Usuarios");
FirebaseListOptions<Usuarios> options = new FirebaseListOptions.Builder<Usuarios>()
.setQuery(query, Usuarios.class)
.setLayout(R.layout.item_row)
.build();
adapter = new FirebaseListAdapter<Usuarios>(options) {
@Override
protected void populateView(View v, final Usuarios model, int position) {
// Bind the Chat to the view
// ...
final TextView textName = v.findViewById(R.id.NombreUsuario);
textName.setText( model.getNombre());
final TextView textEmail = v.findViewById(R.id.Email);
textEmail.setText("Email: " + model.getEmail());
final TextView textPago = v.findViewById(R.id.imgBtnPago);
textPago.setText(model.getPago());
//((TextView)v.findViewById(android.R.id.text1)).setText(model.getEmail());
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
mDatabase = adapter.getRef(position);
Toast.makeText(MainActivity.this, ""+mDatabase.getKey(), Toast.LENGTH_SHORT).show();
Intent intent = new Intent(MainActivity.this, UserEdit.class);
intent.putExtra("Nombre",model.getNombre());
intent.putExtra("Email",model.getEmail());
intent.putExtra("Pago",model.getPago());
startActivity(intent);
}
});
}
};
这是我获取数据的地方
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.cardview_usuario);
mNombre = findViewById(R.id.NombreUsuario);
mEmail = findViewById(R.id.Email);
mToogleBtn = findViewById(R.id.toggleButton);
Intent iin= getIntent();
Bundle b = iin.getExtras();
if(b!=null)
{
String n =(String) b.get("Nombre");
String e =(String) b.get("Email");
final String p =(String) b.get("Pago");
Log.e("Datos",""+n+e);
mNombre.setText("Nombre: "+n);
mEmail.setText("Email: "+e);
// mNombre.setText("Nombre"+n);
mToogleBtn.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
if(p.equals("1")){
compoundButton.isChecked();
}
else{
}
}
});
}
}
所以,我从附加内容中获取了错误的数据。
答案 0 :(得分:0)
解决了它通过适配器与项目位置,我传递我的模型数据但没有我请求它的位置
intent.putExtra("Nombre",adapter.getItem(position).getNombre());
intent.putExtra("Email",adapter.getItem(position).getEmail());
intent.putExtra("Pago",adapter.getItem(position).getPago());