Jump to content
godrugal

Android Studio,Problemas com RecyclerView

Recommended Posts

Criei uma tela de busca com Recycleview, e ao efetuar a busca ele traz o resultado armazenado no banco. Até ai tudo bem. Porém se existir no banco 2 nomes iguais como por exemplo: se existir vinte pessoas com o nome "Carlos", ele só me traz uma pessoa. Aqui abaixo segue a classe adapter e o recycle. Estou usando a tela de fragment. Outro detalhe, se eu repetir a mesma busca, ele inseri na lista abaixo o mesmo item da busca anterior, ou seja, fica 2 itens duplicados com os mesmos valores no recycleview. Eu não sei se o erro ta dentro do método onResponse ou se ta no PHP. Deve ser uma besteira. Quem puder ajudar, agradeço.

 

Classe Adapter:

 

public class CursosAdapterImgUrl extends RecyclerView.Adapter<CursosAdapterImgUrl.CursosHolder> {

List<Curso>listaCursos;
RequestQueue request;
Context context;

public CursosAdapterImgUrl(List<Curso> listaCursos, Context context) {
    this.listaCursos = listaCursos;
    this.context = context;
    request = Volley.newRequestQueue(context);
}

@NonNull
@Override
public CursosHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

    View vista = LayoutInflater.from(parent.getContext()).inflate(R.layout.lista_cursos_img, parent, false);
    RecyclerView.LayoutParams layoutParams =
            new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
                    ViewGroup.LayoutParams.WRAP_CONTENT
            );

    vista.setLayoutParams(layoutParams);
    return new CursosHolder(vista);
}

@Override
public void onBindViewHolder(@NonNull CursosHolder holder, int position) {
   // holder.txtCodigo.setText(listaCursos.get(position).getCodigo().toString());
    holder.txtNome.setText(listaCursos.get(position).getNome().toString());
    holder.txtProfessor.setText(listaCursos.get(position).getProfessor().toString());
    holder.txtCategoria.setText(listaCursos.get(position).getCategoria().toString());


    if(listaCursos.get(position).getUrlImagem()!=null){


        carregarImagemWEBService(listaCursos.get(position).getUrlImagem(),holder);
    }else{
        holder.idImagem.setImageResource(R.drawable.sem_foto);
    }

}

private void carregarImagemWEBService(String urlImagem, final CursosHolder holder) {

    String caminhoImage = "http://192.168.0.12/webservices/" +urlImagem;
    caminhoImage = caminhoImage.replace(" ", "%20");

    ImageRequest imageReq = new ImageRequest(caminhoImage, new Response.Listener<Bitmap>() {
        @Override
        public void onResponse(Bitmap response) {

            holder.idImagem.setImageBitmap(response);

        }
    }, 0, 0, ImageView.ScaleType.CENTER, null, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {

            Toast.makeText(context, "Erro ao carregar a imagem",Toast.LENGTH_SHORT).show();
        }
    });

    request.add(imageReq);
}

@Override
public int getItemCount() {
    return listaCursos.size();
}

public class CursosHolder extends RecyclerView.ViewHolder {

    TextView txtNome,txtCodigo,txtProfessor, txtCategoria;
    ImageView idImagem;

    public CursosHolder(View itemView) {
        super(itemView);
        txtNome= (TextView) itemView.findViewById(R.id.nomeCurso);
        //txtCodigo= (TextView) itemView.findViewById(R.id.txtCodigo);
        txtProfessor= (TextView) itemView.findViewById(R.id.Professor);
        txtCategoria= (TextView) itemView.findViewById(R.id.Categoria);
        idImagem=  itemView.findViewById(R.id.idImagem);
    }
}
}

 

Classe do Recicleview:

 

public class consultarListaNome extends Fragment implements Response.Listener<JSONObject>, Response.ErrorListener {
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2";

// TODO: Rename and change types of parameters
private String mParam1;
private String mParam2;

EditText campoNome;


Button botaoConsultar;
RecyclerView recyclerCursos;
ArrayList<Curso> listaCursos;
ProgressDialog progresso;
RequestQueue request;
JsonObjectRequest jsonObjectReq;
ImageView imgFoto;


private OnFragmentInteractionListener mListener;

public consultarListaNome() {
    // Required empty public constructor
}

/**
 * Use this factory method to create a new instance of
 * this fragment using the provided parameters.
 *
 * @param param1 Parameter 1.
 * @param param2 Parameter 2.
 * @return A new instance of fragment consultarListaNome.
 */
// TODO: Rename and change types and number of parameters
public static consultarListaNome newInstance(String param1, String param2) {
    consultarListaNome fragment = new consultarListaNome();
    Bundle args = new Bundle();
    args.putString(ARG_PARAM1, param1);
    args.putString(ARG_PARAM2, param2);
    fragment.setArguments(args);
    return fragment;
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (getArguments() != null) {
        mParam1 = getArguments().getString(ARG_PARAM1);
        mParam2 = getArguments().getString(ARG_PARAM2);
    }
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View vista = inflater.inflate(R.layout.fragment_consultar_lista_nome, container, false);
    listaCursos=new ArrayList<>();

    recyclerCursos= (RecyclerView) vista.findViewById(R.id.idRecyclerNome);   // se der problema, mude aqui
    recyclerCursos.setLayoutManager(new LinearLayoutManager(this.getContext()));
    recyclerCursos.setHasFixedSize(true);


    campoNome = (EditText) vista.findViewById(R.id.campoNome);
    botaoConsultar = (Button) vista.findViewById(R.id.btnConsultar);

    request= Volley.newRequestQueue(getContext());

    botaoConsultar.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            carregarWEBService();
        }
    });

    return vista;
}

private void carregarWEBService() {

    progresso = new ProgressDialog(getContext());
    progresso.setMessage("Buscando...");
    progresso.show();

    String url = "http://192.168.0.12/webservices/consultarCursoNome.php?nome="+ campoNome.getText().toString();


    jsonObjectReq = new JsonObjectRequest(Request.Method.GET, url, null, this, this);
    request.add(jsonObjectReq);

}


@Override
public void onErrorResponse(VolleyError error) {

    progresso.hide();
    Toast.makeText(getContext(), "Não foi possível listar os cursos " +error.toString() , Toast.LENGTH_SHORT).show();
    Log.i("ERROR", error.toString());

}

@Override
public void onResponse(JSONObject response) {

    progresso.hide();

    Curso curso = null;
    JSONArray json = response.optJSONArray("curso"); // nome da tabela curso


    try {
        for(int i=0; i<json.length();i++){
            curso = new Curso();
            JSONObject jsonObject = null;
            jsonObject = json.getJSONObject(i);

            curso.setNome(jsonObject.optString("nome"));
            curso.setProfessor(jsonObject.optString("professor"));
            curso.setCategoria(jsonObject.optString("categoria"));
            curso.setUrlImagem(jsonObject.optString("url_imagem"));
            listaCursos.add(curso);
        }

        progresso.hide();
        CursosAdapterImgUrl adapter = new CursosAdapterImgUrl(listaCursos,getContext());
        recyclerCursos.setAdapter(adapter);


    }catch (JSONException e){
        e.printStackTrace();
        progresso.hide();
        Toast.makeText(getContext(), "Não foi possível listar os cursos " +response , Toast.LENGTH_SHORT).show();

    }


}




// TODO: Rename method, update argument and hook method into UI event
public void onButtonPressed(Uri uri) {
    if (mListener != null) {
        mListener.onFragmentInteraction(uri);
    }
}

@Override
public void onAttach(Context context) {
    super.onAttach(context);
    if (context instanceof OnFragmentInteractionListener) {
        mListener = (OnFragmentInteractionListener) context;
    } else {
        throw new RuntimeException(context.toString()
                + " must implement OnFragmentInteractionListener");
    }
}

@Override
public void onDetach() {
    super.onDetach();
    mListener = null;
}


public interface OnFragmentInteractionListener {
    // TODO: Update argument type and name
    void onFragmentInteraction(Uri uri);
}
}

 

Código do PHP:

 

<?PHP

include "conexao.php";

$json=array();

    if(isset($_GET["nome"])){
        $nome=$_GET["nome"];


        $consulta="select * from curso where nome= '{$nome}'";  // busca pelo nome
        $resultado=mysqli_query($conexao,$consulta);

        if($registro=mysqli_fetch_array($resultado)){
            $result["codigo"]=$registro['codigo'];
            $result["nome"]=$registro['nome'];
            $result["categoria"]=$registro['categoria'];
            $result["professor"]=$registro['professor'];
            $result["url_imagem"]=$registro['url_imagem'];
            $json['curso'][]=$result;
        }else{
            $resultar["codigo"]=0;
            $resultar["nome"]='nao registrado';
            $resultar["categoria"]='nao registrado';
            $resultar["professor"]='nao registrado';
            $result["url_imagem"]=$registro['url_imagem'];
            
            $json['curso'][]=$resultar;
        }

        mysqli_close($conexao);
        echo json_encode($json);
    }
    else{
            $resultar["codigo"]=0;
            $resultar["nome"]='nao registrado';
            $resultar["categoria"]='nao registrado';
            $resultar["professor"]='nao registrado';
            $result["url_imagem"]=$registro['url_imagem'];
            $json['curso'][]=$resultar;
        echo json_encode($json);
    }
?>

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Marcosjrpb
      ...
    • By godrugal
      Eu tenho minha tela de busca. Ao digitar, ele traz o resultado da busca. O resultado é mostrado em uma recyclerview. Meu Recyclerview foi modelado com algumas textviews e uma imagem. Queria que ao tocar no item da Recyclerview, que o texto da textview fosse passado para outra fragment (tela) que tenho. Consigo fazer até a parte da chamada da tela. Só não consigo resgatar o texto da textview na outra tela. Cheguei até a instanciar as textviews da outra tela que esta modelada o recycler.
      Minha classe do adaptador:
       
      public class CursosAdapterImg extends RecyclerView.Adapter<CursosAdapterImg.CursosHolder> { List<Curso>listaCursos; private OnNoteListener mOnNoteListener; public CursosAdapterImg(List<Curso> listaCursos, Context context,OnNoteListener onNoteListener) { this.listaCursos = listaCursos; this.mOnNoteListener = onNoteListener; } @NonNull @Override public CursosHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View vista = LayoutInflater.from(parent.getContext()).inflate(R.layout.lista_cursos_img, parent, false); RecyclerView.LayoutParams layoutParams = new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT ); vista.setLayoutParams(layoutParams); return new CursosHolder(vista, mOnNoteListener); } @Override public void onBindViewHolder(@NonNull CursosHolder holder, int position) { // holder.txtCodigo.setText(listaCursos.get(position).getCodigo().toString()); holder.txtNome.setText(listaCursos.get(position).getNome().toString()); holder.txtProfessor.setText(listaCursos.get(position).getProfessor().toString()); holder.txtCategoria.setText(listaCursos.get(position).getCategoria().toString()); if(listaCursos.get(position).getImagem()!=null){ holder.idImagem.setImageBitmap(listaCursos.get(position).getImagem()); }else{ holder.idImagem.setImageResource(R.drawable.sem_foto); } } @Override public int getItemCount() { return listaCursos.size(); } public class CursosHolder extends RecyclerView.ViewHolder implements View.OnClickListener { TextView txtNome,txtCodigo,txtProfessor, txtCategoria; ImageView idImagem; OnNoteListener onNoteListener; public CursosHolder(View itemView,OnNoteListener onNoteListener) { super(itemView); txtNome= (TextView) itemView.findViewById(R.id.nomeCurso); //txtCodigo= (TextView) itemView.findViewById(R.id.txtCodigo); txtProfessor= (TextView) itemView.findViewById(R.id.Professor); txtCategoria= (TextView) itemView.findViewById(R.id.Categoria); idImagem= itemView.findViewById(R.id.idImagem); this.onNoteListener = onNoteListener; itemView.setOnClickListener(this); } @Override public void onClick(View view) { onNoteListener.onNoteClick(getAdapterPosition()); } } public interface OnNoteListener{ void onNoteClick(int position); } } Abaixo a minha tela da busca que retorna uma Recyclerview:
       
      return vista; } private void carregarWEBService() { progresso = new ProgressDialog(getContext()); progresso.setMessage("Buscando..."); progresso.show(); String url = "http://192.168.0.5/webservices/consultarListaImagemUrlNome.php?nome="+ campoNome.getText().toString(); jsonObjectReq = new JsonObjectRequest(Request.Method.GET, url, null, this, this); request.add(jsonObjectReq); } @Override public void onErrorResponse(VolleyError error) { progresso.hide(); Toast.makeText(getContext(), "Não foi possível listar os cursos " +error.toString() , Toast.LENGTH_SHORT).show(); Log.i("ERROR", error.toString()); } @Override public void onResponse(JSONObject response) { progresso.hide(); Curso curso = null; JSONArray json = response.optJSONArray("curso"); // nome da tabela curso try { for(int i=0; i<json.length();i++){ curso = new Curso(); JSONObject jsonObject = null; jsonObject = json.getJSONObject(i); curso.setNome(jsonObject.optString("nome")); curso.setProfessor(jsonObject.optString("professor")); curso.setCategoria(jsonObject.optString("categoria")); curso.setDado(jsonObject.optString("imagem")); listaCursos.add(curso); } progresso.hide(); CursosAdapterImg adapter = new CursosAdapterImg(listaCursos,getContext(),this); recyclerCursos.setAdapter(adapter); }catch (JSONException e){ e.printStackTrace(); progresso.hide(); Toast.makeText(getContext(), "Não foi possível listar os cursos " +response , Toast.LENGTH_SHORT).show(); } } @Override public void onNoteClick(int position) { listaCursos.get(position); //Falta passar os parâmetros consultarCursoUrl fragmentConsulta = new consultarCursoUrl(); /* Estava testando nesse bloco passagem de parâmetros para outra fragment Bundle arguments = new Bundle(); arguments.putString( "professor" , "Testando a passagem"); fragmentConsulta.setArguments(arguments); */ FragmentManager fragmentManager = getActivity().getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.replace(R.id.content_main,fragmentConsulta).commit(); } E esse código abaixo, é minha tela que é chamada após tocar no item do recyclerview:
       
      @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getArguments() != null) { mParam1 = getArguments().getString(ARG_PARAM1); mParam2 = getArguments().getString(ARG_PARAM2); } } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View vista = inflater.inflate(R.layout.fragment_consultar_curso_url, container, false); campoCodigo = vista.findViewById(R.id.codigo); campoNome = vista.findViewById(R.id.txt_nome); campoCategoria = vista.findViewById(R.id.txt_categoria); campoProfessor = vista.findViewById(R.id.txt_professor); btnAtualizar = vista.findViewById(R.id.btnAtualizar); btnDeletar = vista.findViewById(R.id.btnDeletar); btnConsultar = vista.findViewById(R.id.btnConsultar); imgFoto = vista.findViewById(R.id.imagemId); /* Estava fazendo teste de parametros nesse bloco Bundle arguments = getArguments(); String nomeProfessor = arguments.getString("professor"); campoNome.setText(nomeProfessor); */ request = Volley.newRequestQueue(getContext()); btnConsultar.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { carregarWEBService(); } }); if(solicitarPermissoesVersoesSuperiores()){ imgFoto.setEnabled(true); }else{ imgFoto.setEnabled(false); } imgFoto.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { carregarDialog(); } }); btnAtualizar.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { carregarWEBServiceAtualizar(); } }); btnDeletar.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { carregarWEBServiceDeletar(); } }); return vista; }  
    • By vinihhylian0103
      Estou fazendo um projeto de Delphi escola e nele tenho que gravar dados no SQLITE. Estou usando o seguinte código:
       
      unit UClube; interface uses   System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,   FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,   FMX.ListView.Types, FMX.ListView.Appearances, FMX.ListView.Adapters.Base,   FMX.StdCtrls, FMX.ListView, FMX.DateTimeCtrls, FMX.Edit,   FMX.Controls.Presentation, FMX.TabControl, FireDAC.Stan.Intf,   FireDAC.Stan.Option, FireDAC.Stan.Error, FireDAC.UI.Intf, FireDAC.Phys.Intf,   FireDAC.Stan.Def, FireDAC.Stan.Pool, FireDAC.Stan.Async, FireDAC.Phys,   FireDAC.Phys.SQLite, FireDAC.Phys.SQLiteDef, FireDAC.Stan.ExprFuncs,   FireDAC.Stan.Param, FireDAC.DatS, FireDAC.DApt.Intf, FireDAC.DApt,   FireDAC.FMXUI.Wait, System.Rtti, System.Bindings.Outputs, Fmx.Bind.Editors,   Data.Bind.EngExt, Fmx.Bind.DBEngExt, Data.DB, FireDAC.Comp.DataSet,   Data.Bind.Components, Data.Bind.DBScope, FireDAC.Comp.UI, FireDAC.Comp.Client, System.IOUtils; type   TForm1 = class(TForm)     TabControl1: TTabControl;     TabItem2: TTabItem;     tb1: TTabItem;     lvSocio: TListView;     btnSalvar: TButton;     btnCancelar: TButton;     btnEditar: TButton;     btnExcluirr: TButton;     Panel1: TPanel;     edtDataNasc: TDateEdit;     edtCod: TEdit;     edtNome: TEdit;     edtRg: TEdit;     edtCPF: TEdit;     edtEndereco: TEdit;     Label1: TLabel;     Label2: TLabel;     Label3: TLabel;     Label4: TLabel;     Label5: TLabel;     labwl: TLabel;     NOME: TLabel;     Button5: TButton;     Panel2: TPanel;     edtDataA: TDateEdit;     edtCodSocio: TEdit;     Label6: TLabel;     Label10: TLabel;     Label11: TLabel;     Label12: TLabel;     rdbSocio: TRadioButton;     edtNomeA: TEdit;     btnNovoA: TButton;     edtHoraIA: TEdit;     Label7: TLabel;     Edit7: TEdit;     edtHoraFA: TLabel;     edtDescricaoA: TEdit;     Label9: TLabel;     edtValorA: TEdit;     btnCancelarA: TButton;     btnEditarA: TButton;     btnExcluirA: TButton;     btnSalvarA: TButton;     lvAgendamento: TListView;     FDConnPrincipal: TFDConnection;     qrSocio: TFDQuery;     qrAgendamento: TFDQuery;     FDPhysSQLiteDriverLink1: TFDPhysSQLiteDriverLink;     FDGUIxWaitCursor1: TFDGUIxWaitCursor;     BindSourceDB1: TBindSourceDB;     BindingsList1: TBindingsList;     LinkListControlToField1: TLinkListControlToField;     LinkControlToField1: TLinkControlToField;     LinkControlToField2: TLinkControlToField;     LinkControlToField3: TLinkControlToField;     LinkControlToField4: TLinkControlToField;     LinkControlToField5: TLinkControlToField;     LinkControlToField6: TLinkControlToField;     qrSocioID: TFDAutoIncField;     qrSocioNOME: TStringField;     qrSocioRG: TStringField;     qrSocioCPF: TStringField;     qrSocioENDERECO: TStringField;     qrSocioDATA_NASC: TDateField;     qrSocioCODIGO: TIntegerField;     qrAgendamentoID: TFDAutoIncField;     qrAgendamentoNOME: TStringField;     qrAgendamentoCODIGO: TIntegerField;     qrAgendamentoDESCRICAO: TWideMemoField;     qrAgendamentoDATA: TDateField;     qrAgendamentoHORA_INICIO: TStringField;     qrAgendamentoHORARIO_FIM: TStringField;     qrAgendamentoVALOR: TLargeintField;     qrAgendamentoSOCIO: TStringField;     procedure rdbSocioChange(Sender: TObject);     procedure btnSalvarClick(Sender: TObject);     procedure Button5Click(Sender: TObject);     procedure btnCancelarClick(Sender: TObject);     procedure btnEditarClick(Sender: TObject);     procedure btnExcluirrClick(Sender: TObject);     procedure FormShow(Sender: TObject);   private     { Private declarations }   public     { Public declarations }   end; var   Form1: TForm1; implementation {$R *.fmx} procedure TForm1.btnCancelarClick(Sender: TObject); begin qrSocio.Cancel; Panel1.Enabled := False; end; procedure TForm1.btnEditarClick(Sender: TObject); begin if qrSocio.RecordCount > 0 then begin   qrSocio.Edit;   Panel1.Enabled := True;   edtNome.SetFocus; end; end; procedure TForm1.btnExcluirrClick(Sender: TObject); begin if qrSocio.RecordCount = 0 then abort; qrSocio.Delete; ShowMessage('Dados excluídos!'); end; procedure TForm1.btnSalvarClick(Sender: TObject); begin if edtNome.Text = '' then begin ShowMessage('O nome não pode estar vázio!'); edtNome.SetFocus; abort; end; qrSocio.Post; qrSocio.Refresh; Panel1.Enabled := False; end; procedure TForm1.Button5Click(Sender: TObject); begin Panel1.Enabled := True; edtNome.SetFocus; qrSocio.Append; end; procedure TForm1.FormShow(Sender: TObject);   begin   FDConnPrincipal.Connected := True;   try  {$IF DEFINED (IOS) or DEFINED (ANDROID)}   FDConnPrincipal.Params.Values['DATABASE'] := TPath.Combine(TPath.GetDocumentsPath, 'BD_CLUBE.s3db');   {$ENDIF}   except on E: Exception do   ShowMessage(e.Message);   end;   qrSocio.Open(); end; procedure TForm1.rdbSocioChange(Sender: TObject); begin  if rdbSocio.IsChecked = true then  begin  edtCodSocio.Enabled := true;  edtCodSocio.SetFocus;  end; end; end.
      E recebo o seguinte erro: 
    • By gamesmax2
      Pessoal criei um app Webview, com leitor de código de barra, porém tiver que utilizar a Bíblioteca zxing barcode, tá funcionando só que é queria que ao ler o código de barra, no lugar do alert fizesse um redirecionamento com código via get para tá salvando com php no banco de dados.
       
      creio que seja uma função simples um redirecionamento, como tenho conhecimento somente com php, tenho dificuldades com Java do Android.
    • By cristianomg
      Preciso de uma orientação estou iniciando com programação para android, e tenho o seguinte caso.
      Possuo dois models Usuario e Anuncio, 
      Quando eu crio um novo usuario e cadastro ele eu adiciono os seguintes dados:
       

       
      Quando eu salvo um anuncio do usuario acima por exemplo, eu quero implementar um contador e adicionar +1 no campo qtdAnuncio, ai vem minha pergunta
      Como eu posso fazer ao exemplo clicar no botão de cadastrar anuncio e colocar dentro de uma variavel o valor do campo qtdAnuncio que esta salvo o dado no nó de usuario?
       
      Ex:  int valorAnuncios = qtdAnuncio que seria 1
      Eu preciso primeiramente resgatar este campo qtdAnuncio do usuario logado
       
      Eu tentei nomear 
      private Usuario usuarioLogado; e xecutar a chamada de um metodo 
      usuarioLogado = UsuarioFirebase.getDadosUsuarioLogado() Método chamado
      public static Usuario getDadosUsuarioLogado(){ FirebaseUser firebaseUser = getUsuarioAtual(); Usuario usuario = new Usuario(); usuario.setEmail( firebaseUser.getEmail() ); usuario.setNome( firebaseUser.getDisplayName().toUpperCase() ); usuario.setId( firebaseUser.getUid() ); return usuario; }  
      E depois em uma dado momento dentro do meu código no 
       
      @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_editar_perfil); //validar permissoes Permissao.validarPermissoes(permissoesNecessarias, this, 1); //configuracoes iniciais usuarioLogado = UsuarioFirebase.getDadosUsuarioLogado(); //Tentei aqui buscar o valor do qtdAnuncio desta forma int valor = String.valueof(usuariologado.getQtdAnuncio()); Só que ao depurar o valor é sempre zero , sendo que tenho qtdAnuncio = 1 no banco do firebase, cfe imagem no inicio
      Alguém pode me orientar como pegar este valor ??
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.