2014-04-25 2 views
-2

Je commence dans le développement d'Android et j'ai besoin de fermer un setContentView() appelé avec un onClickListener() où l'écran myCurrent est une disposition gonflée au-dessus d'autre disposition.Comment fermer un setContentView ou revenir à l'écran précédent?

Voici mon code:

public class MainActivity extends Activity { 

private SQLiteDatabase myDb; 
private String dbPath = "/data/data/com.example.dbapp/databases/testData"; 

private boolean dbExist(String dbPath){ 
    File fakeDb = new File(dbPath); 
    return fakeDb.exists(); 
} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    if(!dbExist(dbPath)){ 
    myDb = openOrCreateDatabase(dbPath, MODE_PRIVATE, null); 
    myDb.execSQL("CREATE TABLE files(cn_userName INTEGER PRIMARY KEY AUTOINCREMENT);"); 
    myDb.close(); 
    }else{ 
     fillDb(); 
    } 
} 

private void fillDb(){ 

    LinearLayout myScroll = (LinearLayout) findViewById(R.id.idOfmyScroll); 
    if(myScroll.getChildCount() > 0){ 
     myScroll.removeAllViews(); 
    } 

    myDb = SQLiteDatabase.openDatabase(dbPath, null, SQLiteDatabase.OPEN_READONLY); 
    Cursor myDbCur = myDb.rawQuery("SELECT * FROM files", null); 

    for(int i = 0; i < myDbCur.getCount(); i++){ 
     View name = getLayoutInflater().inflate(R.layout.name_list, null); 
     TextView userName = (TextView)name.findViewById(R.id.idName); 

     userName.setText(myDbCur.getString(myDbCur.getColumnIndex("cn_userName")); 
     myScroll.addView(name); 
     myDbCur.moveToNext(); 
     myDb.close(); 

     name.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
      setContentView(R.layout.otherUserData); 
      userLastName = (TextView)findViewById(R.id.txtLastName); 
      nombreContacto.setText(userName + "Her LastName"); 
      } 
     }); 
    } 
} 

Quand je presse le saut clé en activity_main et je veux la disposition gonflé

+3

Vous devez être beaucoup plus détaillé dans votre question. Montrer un exemple de code. Qu'avez-vous essayé et que cela ne fonctionne pas? – elevine

+1

Que signifie "gonflé par rapport aux autres dispositions"? – CommonsWare

+0

Vous voulez fermer la vue agrandie et afficher celle qui est en arrière-plan? – zgc7009

Répondre

1

Il semble que vous voulez changer de fragments? Une autre option serait d'avoir juste un framelayout et d'y déposer vos fragments lorsque vous en auriez besoin.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

    <FrameLayout 
     android:id="@+id/container" 
     android:layout_height="match_parent" 
     android:layout_width="match_parent" /> 


</LinearLayout> 

Remplissez alors ce conteneur avec un fragment dans l'activité. Puis, dans votre onclick, vous pouvez utiliser la fonction fragmenttransaction replace au lieu de add.

Questions connexes