2011-05-12 4 views
0

Dans mon application, j'ai deux activités. Au moment du lancement, je montre une zone de texte d'édition et un bouton dans la première activité. Lorsque le bouton est cliqué, il passe à l'activité suivante.Comment fermer une activité au lancement dans Android

Avant cela, lorsque la zone d'édition est saisie, elle est stockée dans une base de données. Lorsque l'activité démarre, elle vérifie la base de données. Si la base de données est vide, elle affiche la première activité si la base de données est remplie. Je souhaite afficher directement la deuxième activité. Mais ça ne se passe pas dans mon code. S'il vous plaît, quelqu'un m'aider? Je veux savoir où je me trompe ...

super.onCreate(savedInstanceState); 

    db = openOrCreateDatabase("TestData.db", SQLiteDatabase.CREATE_IF_NECESSARY, null); 
    db.setVersion(1); 
    db.setLocale(Locale.getDefault()); 
    db.setLockingEnabled(true); 
    final String CREATE_TABLE_COUNTRIES ="CREATE TABLE IF NOT EXISTS tbl_countries (id TEXT);"; 
    db.execSQL(CREATE_TABLE_COUNTRIES); 
    ContentValues values = new ContentValues(); 
    values.put("id", textvalue); 
    Cursor cx = db.rawQuery("select id from tbl_countries" , null); 
    counter=0; 
    if (cx != null) 
    { 
     if (cx.moveToFirst()) 
     { 
      do 
      { 
       counter=counter+1; 
      } 
      while (cx.moveToNext()); 
     } 
    }        
    db.close();   

    if(counter == 0) 
    { 
     setContentView(R.layout.main); 
     et = (EditText)findViewById(R.id.editText1); 

     textvalue = et.getText().toString(); 
     b = (Button)findViewById(R.id.button1); 
     b.setOnClickListener(new View.OnClickListener() 
     { 
      @Override 
      public void onClick(View v) 
      { 
       Intent myIntent = new Intent(getBaseContext(), SeconDClass.class); 
       startActivityForResult(myIntent, 0); 
       finish(); 
      } 
     }); 
    } 
    else if(counter>=1) 
    { 
     Intent myIntent = new Intent(getBaseContext(), SeconDClass.class); 
     startActivityForResult(myIntent, 0); 
     finish();    
    } 

Répondre

0

Je pense qu'il pourrait être à cause de cette

startActivityForResult(myIntent, 0); 
     finish(); 

Il n'a pas de sens pour terminer l'activité qui toucherez le résultat.

essayez simplement startActivity(), vous n'avez pas vraiment besoin d'appeler finish() le premier.

+1

Vous n'avez pas besoin de *, mais vous voudrez peut-être. Cela dépend de ce que vous voulez faire lorsque l'utilisateur appuie sur le bouton de retour une fois qu'ils sont dans la deuxième activité. Si vous n'appelez pas finish() dans le premier, il reviendra à celui-là. Si vous appelez finish() alors il retournera à tout ce qui se passait avant d'entrer dans cette application. – FoamyGuy

+0

Aussi finish() appellera onDestroy() ... –

Questions connexes