1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

[Android]

Discussão em 'Mobile' iniciado por Stack, Janeiro 18, 2021.

  1. Stack

    Stack Membro Participativo

    Estou montando um app de vendas, onde um usuário vai publicar seu produto com: imagem, preço, descrição e valor.

    Eu consigo listar a foto tudo certo mas não consigo colocar um titulo e as demais descrições

    Aqui está a minha lista e meu adapter.

    public class OfertasAdapter extends ArrayAdapter<ParseObject> {
    private Context context;
    private ArrayList<ParseObject> publicacoes;

    public OfertasAdapter(Context c, ArrayList<ParseObject> objects) {
    super(c, 0, objects);
    this.context = c;
    this.publicacoes = objects;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
    View view = convertView;

    if (view == null) {

    //Inicializa objeto para montagem do layout
    LayoutInflater inflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);

    //Monta a view a partir do xml
    view = inflater.inflate(R.layout.lista_publicacoes, parent, false);
    }
    //Verifica se existe postagens
    if (publicacoes.size() > 0) {

    //Recupera componentes da tela
    ImageView imagemPostagem = (ImageView) view.findViewById(R.id.image_lista_publicacoes);

    ParseObject parseObject = publicacoes.get(position);

    //parseObject.getParseFile( "imagem" );
    Picasso.with(context)
    .load( parseObject.getParseFile( "imagem" ).getUrl() )
    .fit()
    .into( imagemPostagem );


    }


    return view;
    }

    }


    esse aqui é o processo de salvar a imagem no banco de dados

    public class PublicarOfertasActivity extends AppCompatActivity {
    private ImageView botaoPublicar;
    private ViewPager viewPager;
    private Button botaoPublicar2;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_publicar_ofertas);
    botaoPublicar = (ImageView) findViewById(R.id.imagePublicar);
    viewPager = (ViewPager) findViewById(R.id.view_pager_main);
    /*configurar adapter novo
    TabsAdapter tabsAdapter = new TabsAdapter(getSupportFragmentManager(),this);
    viewPager.setAdapter(tabsAdapter);*/




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

    private void publicarOfertas() {

    Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
    startActivityForResult(intent, 1);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    //testar o processo de retorno dos dados
    if (requestCode == 1 && resultCode == RESULT_OK && data != null) {


    //Recuperar local do recurso
    Uri localImagemSelecionada = data.getData();



    //Recupera a imagem do local que foi selecionada
    try {
    Bitmap imagem = MediaStore.Images.Media.getBitmap(getContentResolver(), localImagemSelecionada);

    /*
    Comprimir imagem no formato PNG
    */
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    imagem.compress(Bitmap.CompressFormat.PNG, 75, stream);

    /*Comprimir imagem no formato JPG!!!
    */
    ByteArrayOutputStream stream2 = new ByteArrayOutputStream();
    imagem.compress(Bitmap.CompressFormat.JPEG, 75, stream2);

    /*Cria 2 Arrays de Bytes da imagem tanto PNG quanto JPEG
    */
    byte[] byteArray = stream.toByteArray();
    byte[] byteArray2 = stream2.toByteArray();

    /*Cria arquivos com formato proprio do Parse para PNG e JPEG
    */
    SimpleDateFormat dateFormat = new SimpleDateFormat("ddmmaaaahhmmss");
    String nomeImagem = dateFormat.format(new Date());
    ParseFile arquivoParse = new ParseFile(nomeImagem + "imagem.png", byteArray);
    ParseFile arquivoParse2 = new ParseFile(nomeImagem + "imagem.jpeg", byteArray2);

    /*Monta um objeto para salvar no Parse
    */
    ParseObject parseObject = new ParseObject("Imagem");
    parseObject.put("username", ParseUser.getCurrentUser().getUsername());

    /*Atribui 2 entradas de dados no objeto "imagem", para PNG e JPEG
    */
    parseObject.put("imagem", arquivoParse);
    parseObject.put("imagem", arquivoParse2);




    //Salvar os dados
    parseObject.saveInBackground(new SaveCallback() {
    @Override
    public void done(ParseException e) {

    if (e == null) {//Sucesso
    Toast.makeText(getApplicationContext(), "Sua imagem foi postada!", Toast.LENGTH_LONG).show();
    /* TabsAdapter adapterNovo = (TabsAdapter) viewPager.getAdapter();
    OfertasDoDia ofertasDoDiaNovo =(OfertasDoDia) adapterNovo.getFragment(1);
    ofertasDoDiaNovo.atualizaPublicacoes();*/

    } else {//Erro
    Toast.makeText(getApplicationContext(), "Erro ao postar sua imagem, tente novamente!",
    Toast.LENGTH_LONG).show();
    }


    }


    });
    } catch (IOException e) {
    e.printStackTrace();
    }


    }

    }


    e aqui eu listo as imagens no fragment

    public class OfertasDoDia extends Fragment {
    private ArrayList<ParseObject> publicacoes;
    private ListView listView;
    private ArrayAdapter<ParseObject> adapter;
    private ParseQuery<ParseObject> recuperaImagem;



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


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
    Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View view = inflater.inflate(R.layout.fragment_ofertas_do_dia, container, false);

    //montar listview e adapter

    publicacoes = new ArrayList<>();
    listView = (ListView) view.findViewById(R.id.list_publicacoes);
    adapter= new OfertasAdapter(getActivity(),publicacoes);
    listView.setAdapter(adapter);

    //recupera postagens
    getPublicacoes();

    return view;
    }
    private void getPublicacoes(){
    recuperaImagem = ParseQuery.getQuery("Imagem");


    // query.whereEqualTo( "username", ParseUser.getCurrentUser().getUsername() );
    recuperaImagem.orderByDescending("createdAt");
    recuperaImagem.findInBackground(new FindCallback<ParseObject>() {
    @Override
    public void done(List<ParseObject> objects, ParseException e) {

    if ( e == null ){//Sucesso

    if ( objects.size() > 0 ){
    publicacoes.clear();
    for ( ParseObject parseObject : objects ){
    publicacoes.add( parseObject );
    }
    adapter.notifyDataSetChanged();
    }

    }else{//Erro
    e.printStackTrace();

    }
    }
    });

    }

    Continue reading...

Compartilhe esta Página