Ho cercato di risolvere il problema da me e l'ho individuato nella barra progressiva che tra l'altro non funziona nemmeno come dovrebbe.
Mi spiego meglio: io voglio che alla pressione del tasto si attivi la barra, mentre per come l'ho codificata io si attiva quando è quasi giunto il momento della transizione all'activity successiva e in più una volta visualizzata l'activity successiva ,la manda in esecuzione nuovamente allo scadere del tempo specificato nell' istruzione Thread.sleep(100);
codice:
package it.moma.na;
import java.util.LinkedList;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.ProgressBar;
public class Med4Activity extends Activity implements android.view.View.OnClickListener {
private static final int PROGRESS = 0x1;
private ProgressBar mProgress;
private int mProgressStatus = 0;
private long fileSize = 0;
private Handler mHandler = new Handler();
/**Creata l'attività principale settori d'interesse. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.lista_interessi_layout);
Button bottone_avanti = (Button) findViewById(R.id.avanti);//istanziato il bottone avanti
bottone_avanti.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
DataSettore.efficienza=0; // inizializzato settore d'interesse efficienza
DataSettore.fonti=0; // inizializzato settore d'interesse fonti
DataSettore.mobilita=0; // inizializzato settore d'interesse mobilita
DataSettore.riciclo=0; // inizializzato settore d'interesse riciclo
DataSettore.num_interessi=0; // inizializzato settore d'interesse numero di settori d'interesse
int j;
DataSettore.num_sett_inter=4;
fileSize = 0;
mProgress = (ProgressBar) findViewById(R.id.progressbar_Horizontal);
// Start lengthy operation in a background thread
new Thread(new Runnable() {
public void run() {
while (mProgressStatus < 100) {
try {
mProgressStatus += doWork();
} catch (InterruptedException e) {
e.printStackTrace();
}
mHandler.post(new Runnable() {
public void run() {
mProgress.setProgress(mProgressStatus);
}
});
}
runOnUiThread(new Runnable() {
@Override
public void run() {
startActivity(new Intent(Med4Activity.this, SceltaPA.class));
mProgress.setVisibility(4);
}
});
}
public int doWork() throws InterruptedException {
Thread.sleep(100);
return 1;
}
}).start();
switch (v.getId()){
// se è premuto il bottone avanti individua quali checkbox sono depennati e setta le rispettive variabili
case R.id.avanti:
final CheckBox cb1 = (CheckBox)findViewById(R.id.checkbox1);
if(cb1.isChecked()){ // se il primo checkbox è depennato setta efficienza a 1 e incrementa num_interressi
DataSettore.efficienza=1;
DataSettore.num_interessi=DataSettore.num_interessi+1;
}
final CheckBox cb2 = (CheckBox)findViewById(R.id.checkBox2);
// se il primo checkbox è depennato setta fonti a 1 e incrementa num_interressi
if(cb2.isChecked()){
DataSettore.fonti=1;
DataSettore.num_interessi=DataSettore.num_interessi+1;
}
final CheckBox cb3 = (CheckBox)findViewById(R.id.checkBox3);
if(cb3.isChecked()){
// se il primo checkbox è depennato setta mobilita a 1 e incrementa num_interressi
DataSettore.mobilita=1;
DataSettore.num_interessi=DataSettore.num_interessi+1;
}
final CheckBox cb4 = (CheckBox)findViewById(R.id.checkBox4);
if(cb4.isChecked()){
// se il primo checkbox è depennato setta riciclo a 1 e incrementa num_interressi
DataSettore.riciclo=1;
DataSettore.num_interessi=DataSettore.num_interessi+1;
}
if(cb1.isChecked()||cb2.isChecked()||cb3.isChecked()||cb4.isChecked()){
String[] arrayString = new String[1];
arrayString[0]="id";
LinkedList<String> idv = Connession.send("select id from visitatore where nome='tizio' and cognome='caio' and email='tiziocaio@lie.it';",arrayString);
String idstr=idv.getFirst();
idstr=idstr.replace("% ","");
Log.i("t1",idstr);
int id=Integer.valueOf( idstr ).intValue();
for (j=1;j<=DataSettore.num_sett_inter;j++)
{
LinkedList<String> ins = Connession.send("insert into interessamento(idpersona,idsettore)values("+id+", "+j+");",null);
}
LinkedList<String> upd = Connession.send("update interessamento set counts=counts+1 where (idpersona= "+id+") and (idsettore in(select id from settore_interesse where ((id=1 and "+DataSettore.efficienza+"=1)or (id=2 and "+DataSettore.fonti+"=1)or (id=3 and "+DataSettore.mobilita+"=1)or (id=4 and "+DataSettore.riciclo+"=1))) ) ;",null);
//f LinkedList<String> u = Connessione.send("update interessamento set counts=counts+1 where (idpersona in (select id from visitatore where nome='tizio' and cognome='caio' and email='tiziocaio@lie.it') and idsettore in(select id from settore_interesse where ((id=1 and "+efficienza+"=1)or (id=2 and "+fonti+"=1)or (id=3 and "+mobilita+"=1)or (id=4 and "+riciclo+"=1)or(id=5 and "+enti+"=1)) ));",null);
Intent sceltapa_intent=new Intent(getApplicationContext(),SceltaPA.class);
startActivity(sceltapa_intent);
overridePendingTransition(R.anim.fedeout, R.anim.fadein);
}else{
//finestra di dialogo (alert)
AlertDialog.Builder sceltapaAlert = new AlertDialog.Builder(this);
sceltapaAlert.setTitle("Attenzione");
sceltapaAlert.setMessage("Scegliere almeno un settore d'interesse");
sceltapaAlert.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}});
AlertDialog alert = sceltapaAlert.create();
alert.show();
}
break;}
}
}