CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: bluemask con ben 3 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 9 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 31 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 5 su 5
Discussione:

Problema Barcode Zxing

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Androidiano


    Registrato dal
    Jan 2012
    Messaggi
    110

    Ringraziamenti
    3
    Ringraziato 7 volte in 4 Posts
    Predefinito

    Problema Barcode Zxing

    Salve a tutti .. vi espongo brevemente il mio problema .. Sto progettando una guida turistica del mio paese utilizzando varie listview, inoltre ho pensato di inserire un tastino per l'avvio di un lettore di Qrcode che una volta posizionati in luoghi strategici del paese consentiranno di usufruire di vari contenuti (essenzialmente richiameranno tramite intent altre activity). Ho fatto praticamente tutto, ho inserito la libreria Zxing, i file jar, e il tasto. Sembra funzionare anche la lettura e l'avvio dell'intent ... L'unico grande problema è che una volta avviato il lettore se premo il pulsante "BACK" sia quello dell'app che quello fisso del telefono mandano in crash l'app stessa.. Ho provato in mille modi ma non sono riuscito a risolverlo. Di seguito lascio il codice dell'activity principale e il layout del bottone.. P.S. il bottone è posizionato nell'actionbar..

    Activity Principale

    codice:
    public class MyFiculleHome extends Activity {
    
        String contents;
        ArrayList<Item> items = new ArrayList<Item>();
        ListView listview=null;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_my_ficulle_home);
            listview=(ListView)findViewById(R.id.listView);
            ActionBar bar = getActionBar();
            bar.setHomeButtonEnabled(true);
    
    
    
            items.add(new SectionItem());
            items.add(new ElementListHome("  Cenni Storici",R.drawable.icon_storia,R.drawable.arrow));
            items.add(new ElementListHome("  Monumenti", R.drawable.icon_monumenti,R.drawable.arrow));
            items.add(new ElementListHome("  Manifestazioni",R.drawable.icon_feste,R.drawable.arrow));
            items.add(new ElementListHome("  Dove Mangiare",R.drawable.icon_mangiare,R.drawable.arrow));
            items.add(new ElementListHome("  Dove Dormire",R.drawable.icon_dormire,R.drawable.arrow));
            items.add(new ElementListHome("  Artigiani", R.drawable.icon_artigiani,R.drawable.arrow));
            items.add(new ElementListHome("  Attività",R.drawable.icon_attivita,R.drawable.arrow));
            items.add(new ElementListHome("  Mappa",R.drawable.icon_mappa,R.drawable.arrow));
    
    
    
            //riempimento casuale della lista delle persone
    
            EntryAdapter adapter = new EntryAdapter(this, items);
            listview.setAdapter(adapter);
    
    
    
            listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, final View view, int position, long id) {
    
                    Integer i = (int)(long)id;
                    switch(i) {
    
                        case 1: Intent activity1 = new Intent(MyFiculleHome.this, Cenni_storici.class);
                            startActivity(activity1);
                            break;
                        case 2:
                            Intent activity2 = new Intent(MyFiculleHome.this, Monument_list.class);
                            startActivity(activity2);
                            break;
                        case 3:
                            Intent activity3 = new Intent(MyFiculleHome.this, Manifestazioni_list.class);
                            startActivity(activity3);
                            break;
                        case 4: Intent activity4 = new Intent(MyFiculleHome.this, Mangiare_list.class);
                            startActivity(activity4);
                            break;
                        case 5: Intent activity5 = new Intent(MyFiculleHome.this, Dormire_list.class);
                            startActivity(activity5);
                            break;
                        case 6:
    
                            break;
                        case 7:Intent activity7 = new Intent(MyFiculleHome.this, Attivita_list.class);
                            startActivity(activity7);
    
                            break;
                        case 8:
                            Intent activity8 = new Intent(MyFiculleHome.this, Map.class);
                            startActivity(activity8);
                            break;
                        case 9:
    
                            break;
    
                    }
                    
                }
            });
    
    
        }
    
    
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.my_ficulle_home, menu);
            getMenuInflater().inflate(R.menu.barcode_menu, menu);
            return true;
        }
    
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            // Handle action bar item clicks here. The action bar will
            // automatically handle clicks on the Home/Up button, so long
            // as you specify a parent activity in AndroidManifest.xml.
            int id = item.getItemId();
            if (id == R.id.action_settings) {
                return true;
            }
            if (id == R.id.action_home) {
    
                return true;
            }
            if (id == R.id.code) {
                IntentIntegrator.initiateScan(this);
    
                return true;
            }
            return super.onOptionsItemSelected(item);
        }
    
    
    
        public void onActivityResult(int request, int result, Intent i) {
            IntentResult scan=IntentIntegrator.parseActivityResult(request,result, i);
    
            if (scan!=null) {
    
                contents=scan.getContents();
    
                if(contents.equals("storia")) {
                    Intent activity1 = new Intent(MyFiculleHome.this, Cenni_storici.class);
                    startActivity(activity1);
    
    
                }
            }
    
        }
    
    
    }

    Layout bottone actionbar

    codice:
    <?xml version="1.0" encoding="utf-8"?>
    
    <menu xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:id="@+id/code"
            android:orderInCategory="100"
            android:showAsAction="always"
            android:title="Usa Codice"
            android:icon="@drawable/icona_qrcode"
            />
    
    
    </menu>

  2.  
  3. #2
    Androidiano


    Registrato dal
    Jan 2012
    Messaggi
    110

    Ringraziamenti
    3
    Ringraziato 7 volte in 4 Posts
    Predefinito

    Allora facendo alcune prove in effetti ho capito che il problema risiede proprio nell'actionbar, o meglio nel pulsante che richiama il lettore di codice posizionato nell'actionbar.. Infatti se inserisco un pulsante nell'activity e richiamo lo scanner tutto funziona perfettamente. Quindi a questo punto la mia idea era quella di inserire un'altro pulsante in modalità "hide" e poi richiamare l'onclick dal pulsante sull'actionbar, pertanto vi chiedo: esiste un modo per fare questo ?? grazie

  4. #3
    Androidiano


    Registrato dal
    Jan 2012
    Messaggi
    110

    Ringraziamenti
    3
    Ringraziato 7 volte in 4 Posts
    Predefinito

    Ho risolto ..

  5. #4
    Androidiani Power User L'avatar di Crotan


    Registrato dal
    Jul 2013
    Località
    Roma
    Messaggi
    1,265
    Smartphone
    Redmi Note 9 Pro

    Ringraziamenti
    401
    Ringraziato 1,445 volte in 626 Posts
    Predefinito

    Quote Originariamente inviato da lucamar88 Visualizza il messaggio
    Ho risolto ..
    Ciao, se vuoi scrivi come hai fatto a risolvere. Potrebbe tornare utile a qualcuno in futuro.

  6. #5
    Androidiano


    Registrato dal
    Jan 2012
    Messaggi
    110

    Ringraziamenti
    3
    Ringraziato 7 volte in 4 Posts
    Predefinito

    Quote Originariamente inviato da Crotan Visualizza il messaggio
    Ciao, se vuoi scrivi come hai fatto a risolvere. Potrebbe tornare utile a qualcuno in futuro.
    Si scusate adesso lo spiego ma era più semplice di quello che pensavo.. Praticamente era sbagliato o comunque non funzionava l' IF all'interno del metodo onActivityResult .. Infatti togliendo quell'if e mettendo un metodo esterno per gestione della lettura tutto funziona alla grande ..

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy