0
我的應用程序出現問題。 progressDialog顯示完美,但在此之後,應用程序不起作用。應用程序必須在progressDialog之後顯示消息並完成一些editText。這裏是MyActivity的代碼:Android應用程序中的ProgressDialog
public class MyActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
Button button = (Button) findViewById(R.id.searchBtn);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
final ProgressDialog progress = ProgressDialog.show(MyActivity.this,
"Buscando...",
"Espere mientras se busca la información...", true);
new Thread(new Runnable() {
@Override
public void run()
{
// Código principal de la aplicación
EditText text = (EditText) findViewById(R.id.nameTxt);
//comprobar si existe nombre
if ("".equals(text.getText().toString().trim())) {
Toast.makeText(getApplicationContext(), getResources().getString(R.string.noNameMsg), Toast.LENGTH_SHORT).show();
return;
}
String enteredName = text.getText().toString();
String finalName = enteredName.toLowerCase();
//String salutation = getResources().getString(R.string.hello)
// + " " + enteredName;
int codeASCII = 0;
for (int x = 0; x < finalName.length(); x++) {
codeASCII += (int) finalName.charAt(x);
}
EditText day = (EditText) findViewById(R.id.day);
//comprobar si se ha introducido día
if ("".equals(day.getText().toString().trim())) {
Toast.makeText(getApplicationContext(), getResources().getString(R.string.noDayMsg), Toast.LENGTH_SHORT).show();
return;
}
EditText month = (EditText) findViewById(R.id.month);
//comprobar si se ha introducido mes
if ("".equals(month.getText().toString().trim())) {
Toast.makeText(getApplicationContext(), getResources().getString(R.string.noMonthMsg), Toast.LENGTH_SHORT).show();
return;
}
EditText year = (EditText) findViewById(R.id.year);
//comprobar si se ha introducido año
if ("".equals(year.getText().toString().trim())) {
Toast.makeText(getApplicationContext(), getResources().getString(R.string.noYearMsg), Toast.LENGTH_SHORT).show();
return;
}
int dia = Integer.valueOf(day.getText().toString());
int año = Integer.valueOf(year.getText().toString());
int mes = Integer.valueOf(month.getText().toString());
int nacimiento = dia + mes + año;
int nTotal = 17;
int x = (codeASCII + nacimiento) % nTotal;
String[] insultos = new String[nTotal];
insultos[0] = "No te preocupes, hay más virtudes que la inteligencia";
insultos[1] = "Tienes futuro como plantador de nabos";
insultos[2] = "Ha llegado la hora de pensar en ir saliendo del armario";
insultos[3] = "Se puede vivir con dignidad a pesar de tan elevado grado de alopecia";
insultos[4] = "Tú tambien podrás triunfar, recuerda a Forrest Gump";
insultos[5] = "Ni Newton ni Einsten, sabemos que lo tuyo es Bob Esponja";
insultos[6] = "A no todo el mundo le sale bien una O cuando usa un canuto. No te preocupes, ya aprenderás";
insultos[7] = "Tu atractivo será evidente para muchos, puede incluso que para alguna persona";
insultos[8] = "No es un error que te creas tan atractivo, tu error es que no estás bien informado";
insultos[9] = "Te espera un brillante fututro en el mundo del porno, siempre hace falta gente que lleve las toallas";
insultos[10] = "Tu cociente intelectual es, bueno, el suficiente para que te hayas descargado esta aplicación absolutamente inútil";
insultos[11] = "Muéstrate siempre tal y como eres, salvo cuando intentes gustar a alguien";
insultos[12] = "Si le caes bien a mucha gente deberías recordar que el perro es el mejor amigo del hombre ";
insultos[13] = "Tienes una mente de altos vuelos, o lo que es lo mismo, un cerebro de pájaro";
insultos[14] = "La mediocridad es lo que más abunda, puede que eso te dé consuelo";
insultos[15] = "Totorota es una palabra canaria. Aún así, cualquier peninsular que te vea sabrá lo que significa";
insultos[16] = "Por fin podrás vivir como siempre habías soñado... en casa de tu madre";
TextView out = (TextView) findViewById(R.id.out);
out.setText(insultos[x]);
runOnUiThread(new Runnable() {
@Override
public void run()
{
progress.dismiss();
}
});
}
}).start();
}
});
}
@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, 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;
}
return super.onOptionsItemSelected(item);
}
}
所以你的應用程序崩潰的ProgressDialog出現後是什麼呢?你的logcat顯示什麼? – shyam 2014-08-31 13:51:03
爲什麼有'Thread'? – 2014-08-31 13:56:06
「但在此之後,應用程序不起作用」 - 這是什麼意思?應用程序崩潰? – eldjon 2014-08-31 14:50:42