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>