Ver mensagens sem resposta | Ver tópicos ativos Hoje é 06 Dez 2019, 06:34



Responder Tópico  [ 1 Mensagem ] 
 Menu contextual 
Autor Mensagem
What is Android?
What is Android?

Data de registro: 12 Jun 2018, 21:17
Mensagens: 1
Mensagem Menu contextual
Boa noite.
Tenho uma aplicação para controle de extintores, o que quero é que quando selecionar um item ele deve pegar a posição dele para excluir ou alterar, devo usar o menu contextual simples, aquele de actionbar. Não estou conseguindo pegar a posição.

o método é o : onActionItemClicked

Segue o código:

public class PrincipalActivity extends AppCompatActivity{

    private ListView listViewExtintores;
    private ArrayAdapter<Extintores> listaAdapter;
    private ArrayList<String> array_ext;
    private ActionMode actionMode;
    private int posicaoSelecionada = -1;
    private View viewSelecionada;
    private static final int REQUEST_NOVO_EXTINTOR = 1;
    private static final int REQUEST_ALTERAR_EXTINTOR = 2;


    //MENU ACAO CONTEXTUAL SIMPLES INICIO
    private ActionMode.Callback mActionModeCallback = new ActionMode.Callback() {
        @Override
        public boolean onCreateActionMode(ActionMode mode, Menu menu) {
            MenuInflater inflater = mode.getMenuInflater();
            inflater.inflate(R.menu.item_selecionado, menu);
            return true;
        }

        @Override
        public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
            return false;
        }



        @Override
        public boolean onActionItemClicked(ActionMode mode, MenuItem item) {

            switch (item.getItemId()){
                case R.id.deleta_item:
                    //item.getItemId();
                    //excluirNome();
                    //Toast.makeText(PrincipalActivity.this, , Toast.LENGTH_LONG).show();
                    //listaAdapter.remove(listViewExtintores.getItemAtPosition(posicaoSelecionada));
                    mode.finish();
                    return true;
                case R.id.altera_item:
                    //excluir();
                    mode.finish();//Fecha o menu apos clicar no icone
                    return true;
                case R.id.servicos_item:
                    Intent intent_servicos = new Intent(getApplicationContext(), ServicosActivity.class);
                    startActivity(intent_servicos);
                    mode.finish();
                    return true;
                default:
                    return false;
            }
        }


        @Override
        public void onDestroyActionMode(ActionMode mode) {
            if(viewSelecionada != null){
                viewSelecionada.setBackgroundColor(Color.TRANSPARENT);
            }

            actionMode = null;
            viewSelecionada = null;

            listViewExtintores.setEnabled(true);
        }
    };

    //MENU ACAO CONTEXTUAL SIMPLES FINAL



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_principal);

        listViewExtintores = findViewById(R.id.listViewItens);

        listViewExtintores.setChoiceMode(ListView.CHOICE_MODE_SINGLE);

        listViewExtintores.setOnItemLongClickListener(
                new AdapterView.OnItemLongClickListener() {

                    @Override
                    public boolean onItemLongClick(AdapterView<?> parent,
                                                   View view,
                                                   int position,
                                                   long id) {

                        if (actionMode != null){
                            return false;
                        }

                        posicaoSelecionada = position;

                        view.setBackgroundColor(Color.LTGRAY);

                        viewSelecionada = view;

                        listViewExtintores.setEnabled(false);

                        actionMode = startSupportActionMode(mActionModeCallback);

                        return true;
                    }
                });

        popularLista();
    }

    private void popularLista() {

        List<Extintores> lista = null;

        try {
            DatabaseHelper conexao = DatabaseHelper.getInstance(this);

            lista = conexao.getExtintoresDAO()
                    .queryBuilder()
                    .orderBy("nome", false)
                    .query();

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


        listaAdapter = new ArrayAdapter<Extintores>(PrincipalActivity.this,
                android.R.layout.simple_list_item_1,
                lista);

        listViewExtintores.setAdapter(listaAdapter);
    }

    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_principal, menu);
        return true;
    }

    /*private void excluirExtintor(){
        String mensagem = getString(R.string.deseja_realmente_apagar)
                + "\n";

        DialogInterface.OnClickListener listener =
                new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                        switch(which){
                            case DialogInterface.BUTTON_POSITIVE:

                                    DatabaseHelper conexao =
                                            DatabaseHelper.getInstance(PrincipalActivity.this);

                                    //conexao.getExtintoresDAO().delete(extintores);

                                    array_ext.remove(posicaoSelecionada);
                                    listaAdapter.notifyDataSetChanged();



                                break;
                            case DialogInterface.BUTTON_NEGATIVE:

                                break;
                        }
                    }
                };

        UtilsGUI.confirmaAcao(PrincipalActivity.this, mensagem, listener);
    }*/


    private void excluirNome(){
        array_ext.remove(posicaoSelecionada);
        listaAdapter.notifyDataSetChanged();
    }



    @Override
        protected void onResume() {
            //Ao voltar a tela principal apos o cadastro chama o metodo popularLista para carregar os registros adicionados
            super.onResume();
            popularLista();
        }



        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            int id = item.getItemId();

            switch (item.getItemId()) {
                case R.id.sobre_app:
                    Intent intent_sobre = new Intent(getApplicationContext(), AboutActivity.class);
                    startActivity(intent_sobre);
                    return true;

                case R.id.adicionar:
                    Intent intent_adicionar = new Intent(getApplicationContext(), CadastroActivity.class);
                    startActivity(intent_adicionar);
                    return true;

                default:
                    return super.onOptionsItemSelected(item);
            }

        }

}


12 Jun 2018, 21:20
Perfil
Mostrar mensagens anteriores:  Organizar por  
Responder Tópico   [ 1 Mensagem ] 

Quem está online

Usuários vendo este fórum: Abraao, alberto, alexcost2002, alexsander.miranda, Analista, Andre, andreluiz, augustomig, beeshop, Biggs Darklighter, blurkness, bozzano, bravus, bruno.abd, burujo, caciara, Carlos, carlos.macleod, Celso Jr., celson, cenatech, claudio, Cleiton, Corneta, danilosouza, Darkluna, darllan.marinho, Deiapinh, Diego Otani, Diego Rufino, dirceuconte, dnakamashi, dobau, Dudi_FC, emersonbarros, Eneias, erikopa, EvertonLB, fabielp, Fernando Cardia, fernando neves, fgalvão, garretereis, geco, geeks, glmsistemas, gutomilani, HAMSES, HanNiBaLSeTDf, hugomarinho, IgorBrum, interservic, italoraony, itsN, JackBlackJack, jackstuard, jairodealmeida, jandersonjc, jcorreajr, JMurray, Joessi2007, jpespindola, juliancesar, juliaojunior, Juliobcosta, Juninhooooo, juniorfranca, juniorsk8, Katia, kecyobarros, lazarodm, leo, lhdiassilva, lkunta, Lúcio Zanette, marciosoliveira, Marco Magoo, marcosandreao, marcow, mauriciomag, maurosilva, mcurtis, mirelli, mtomazzi, Newton Barbosa, nilsgome, nrsf, nsansilva, paulo.weber, paulovaz, phsantos, PicsearchDroid, rafael.cioban, rayberg, rdchaves, renan.fernandes, ricardo, ricardoogliari, Roberto, rocha, Rodrigo, rodrigo_corinthians, ScoobyGB, siker C3PO, skcratch, sobrinho, Stormtrooper, Synoo [Bot], tavares767, Teodoro, Thiago, tirloni, Transtago, ttaranto, vandob, vanmars, waideman, Wenceslau, wilsond, Yoshihury, yuri82 e 22 visitantes


Você não pode criar novos tópicos neste fórum
Você não pode responder tópicos neste fórum
Você não pode editar suas mensagens neste fórum
Você não pode excluir suas mensagens neste fórum
Você não pode enviar anexos neste fórum

Procurar por:
cron

© 2007 - 2016 Portal Android - Comunidade de Desenvolvedores Android

Estamos no Linkedin    Siga-nos no twitter


Powered by phpBB - Hospedado por Bemobi