Olá pessoal, to com uma duvida, quero usar uma lista com adpter, só que a lista não fica em formato lista, mas os itens inserido ficam um sobre o outros.
Modo como os itens inseridos aparecem
Classe adpter produto(Acampamento)
public class AdapterProduto extends RecyclerView.Adapter<AdapterProduto.MyViewHolder>{
private List<Produto> produtos;
private Context context;
public AdapterProduto(List<Produto> produtos, Context context) {
this.produtos = produtos;
this.context = context;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int i) {
View itemLista = LayoutInflater.from(parent.getContext()).inflate(R.layout.adapter_produto, parent, false);
return new MyViewHolder(itemLista);
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int i) {
Produto produto = produtos.get(i);
holder.nome.setText(produto.getNomePro());
holder.informacao.setText(produto.getInformaAcamp());
holder.valor.setText("R$ " + produto.getValorAreaAcampa());
//holder.FotoA.setImageBitmap(produto.getUrlImagemproduto());
}
@Override
public int getItemCount() {
return produtos.size();
}
public class MyViewHolder extends RecyclerView.ViewHolder {
ImageView foto;
TextView nome;
TextView informacao;
TextView valor;
public MyViewHolder(View itemView) {
super(itemView);
foto = itemView.findViewById(R.id.ImageProduto);
nome = itemView.findViewById(R.id.TextNomeProduto);
informacao = itemView.findViewById(R.id.TextInfomacao);
valor= itemView.findViewById(R.id.TextValorArea);
}
}
}
Activit novo produto
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".activity.Activity.NovoProdutoEmpresaActivity">
<include
layout="@layout/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp">
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/FotoP"
android:layout_width="304dp"
android:layout_height="120dp"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:src="@drawable/acampamento" />
<EditText
android:id="@+id/NomeArea"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="-2dp"
android:background="@drawable/bg_edtex"
android:ems="10"
android:hint="Nome Área"
android:inputType="text"
android:padding="16dp" />
<EditText
android:id="@+id/InformaAcamp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_edtex"
android:ems="10"
android:hint="Informações"
android:inputType="text"
android:padding="16dp" />
<EditText
android:id="@+id/Valorarea"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="-2dp"
android:background="@drawable/bg_edtex"
android:ems="10"
android:hint="Valor da Área"
android:inputType="text"
android:padding="16dp" />
<Button
android:id="@+id/buttonAcessar2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="ValidarDadosCAM"
android:padding="16dp"
android:text="Salvar"
android:textColor="#33351D"
android:theme="@style/botao" />
</LinearLayout>
</LinearLayout>
Classe novo produto
public class NovoProdutoEmpresaActivity extends AppCompatActivity {
private EditText nomeAr, informaAre,Valor;
private ImageView imageAcampa;
private DatabaseReference firebaseRef;
private String idUsuarioLogado;
private static final int SELECAO_GALEREIA = 200;
private String urlImagemPro = "";
private StorageReference storageReference;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_novo_produto_empresa);
inicializarComponentes();
firebaseRef = ConfiruFirebase.getFirebase();
idUsuarioLogado= UsuarioFirebase.getIdUsuario();
storageReference= ConfiruFirebase.getReferenciaStorage();
//Configurações Toolbar
Toolbar toolbar = findViewById(R.id.toolbarNova);
toolbar.setTitle("Nova Informação/Foto");
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
imageAcampa.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(Intent.ACTION_PICK,
MediaStore.Images.Media.EXTERNAL_CONTENT_URI
);
if (i.resolveActivity(getPackageManager()) != null) {
startActivityForResult(i, SELECAO_GALEREIA);
}
}
});
recuperarDadoProdutos();
}
private void recuperarDadoProdutos(){
DatabaseReference produtosRef = firebaseRef
.child("produtos");
//.child( idProduto );
produtosRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if( dataSnapshot.getValue() != null ){
Produto produto = dataSnapshot.getValue(Produto.class);
nomeAr.setText(produto.getNomePro());
informaAre.setText(produto.getInformaAcamp());
//edtValor.setText(empresa.getValor().toString());
//edtInformaEmpresa.setText(empresa.getInformacoes());
urlImagemPro = produto.getUrlImagemproduto();
if( urlImagemPro != "" ){
Picasso.get()
.load(urlImagemPro)
.into(imageAcampa);
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
public void ValidarDadosCAM(View view){
//Valida se os campos foram preenchidos
String nome = nomeAr.getText().toString();
String informacoes = informaAre.getText().toString();
String valor = Valor.getText().toString();
if( !nome.isEmpty()){
if( !informacoes.isEmpty()){
//if( !ramo.isEmpty()){
if( !valor.isEmpty()){
Produto produto = new Produto();
produto.setIdUsuario( idUsuarioLogado );
produto.setNomePro( nome );
produto.setValorAreaAcampa( Double.parseDouble(valor));
//empresa.setRamo(ramo);
produto.setInformaAcamp( informacoes );
produto.setUrlImagemproduto(urlImagemPro );
produto.salvar();
finish();
exibirMensagem("Produto Salvo Com Sucesso!!");
}else{
exibirMensagem("Digite Nome ");
}
}else{
exibirMensagem("Digite Informações ");
}
}else{
exibirMensagem("Digite valor");
}
}
private void exibirMensagem(String texto) {
Toast.makeText(this, texto, Toast.LENGTH_SHORT)
.show();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
Bitmap imagem = null;
try {
switch (requestCode) {
case SELECAO_GALEREIA:
Uri localImagem = data.getData();
imagem = MediaStore.Images
.Media
.getBitmap(
getContentResolver(),
localImagem
);
break;
}
if (imagem != null) {
imageAcampa.setImageBitmap(imagem);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
imagem.compress(Bitmap.CompressFormat.JPEG, 70, baos);
byte[] dadosImagem = baos.toByteArray();
final StorageReference imagemRef = storageReference
.child("produtos")
.child("acampamentos")
.child(idUsuarioLogado + "jpeg");
UploadTask uploadTask = imagemRef.putBytes(dadosImagem);
uploadTask.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(NovoProdutoEmpresaActivity.this,
"Erro ao fazer upload da imagem",
Toast.LENGTH_SHORT).show();
}
}).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
urlImagemPro = taskSnapshot.getDownloadUrl().toString();
Toast.makeText(NovoProdutoEmpresaActivity.this,
"Sucesso ao fazer upload da imagem",
Toast.LENGTH_SHORT).show();
imagemRef.getDownloadUrl().addOnCompleteListener(new OnCompleteListener<Uri>() {
@Override
public void onComplete(@NonNull Task<Uri> task) {
Uri url = task.getResult();
}
});
}
});
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
private void inicializarComponentes(){
nomeAr = findViewById(R.id.NomeArea);
informaAre = findViewById(R.id.InformaAcamp);
Valor=findViewById(R.id.Valorarea);
imageAcampa= findViewById(R.id.FotoP);
}