GetExtra数据没有用项目信息填充我的cardview

时间:2018-01-02 14:17:39

标签: android listview firebase firebase-realtime-database

我从我的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{



                    }
                }
            });

        }

    }

所以,我从附加内容中获取了错误的数据。

1 个答案:

答案 0 :(得分:0)

解决了它通过适配器与项目位置,我传递我的模型数据但没有我请求它的位置

 intent.putExtra("Nombre",adapter.getItem(position).getNombre());
                        intent.putExtra("Email",adapter.getItem(position).getEmail());
                        intent.putExtra("Pago",adapter.getItem(position).getPago());