Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509

    [android] carica due layout al posto di uno

    Ciao a tutti,
    scusate le domande da principiante ma ho iniziato da poco e nonostante le guide e un corso online, non riesco a capire diverse cose.

    sto cercando un programma base formato da due pagine (almeno per iniziare).
    se fosse php o asp sarebbe di una banalità unica... ma android mi sta mettendo in croce

    il programma consiste nella pagina principale
    formata da 1 pulsante e una lista di contenuti presi dal DB.

    se si preme sul pulsante si passa al secondo layout che dovrebbe permettere di inserire i record o modificarli.


    per i fare le prove sto usando la guida che ho trovato qui
    http://www.html.it/articoli/la-gesti...se-in-android/
    che a quanto pare è piu semplice di quella che ho pagato...
    anche se eclipse mi ha dato qualche errore.
    tipo la query per la creazione del db errata e un errore nella chiusura del db.

    ad ogni modo il mio problema è che una volta premuto il pulsante "nuovo"
    mi apre il form correttamente ma se premo il tasto virtuale indietro (non configurato) mi ricarica il form e poi se ripremuto mi rimanda alla pagina principale.
    in pratica è come se caricasse 2 volte la seconda pagina.
    non riesco a capire perchè.

    la seconda pagina/Activity la richiamo così
    codice:
    public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.principale); 
            
            Button btnNewProg = (Button) findViewById(R.id.nuovoProgetto);
            btnNewProg.setOnClickListener(new OnClickListener(){
    			@Override
    			public void onClick(View arg0) {
    				Intent myIntent = new Intent(Main.this, progetto.class); 
    				Main.this.startActivity(myIntent); 				
    				startActivity(myIntent);
    			}        	
            });
        }
    mentre la classe della seconda activity è questa:
    (copiata dalla guida di android di html.it)
    codice:
    public class progetto extends Activity {
    	        
    	private DbAdapter dbHelper;   
    	private Cursor cursor; 
    	private static final String TAG = "test";	   
    	
    	/** Called when the activity is first created. */    
    	@Override    
    	public void onCreate(Bundle savedInstanceState) 
    	{        
    		super.onCreate(savedInstanceState);    
    		setContentView(R.layout.progetto);   		      
    		
    		dbHelper = new DbAdapter(this);  
    		dbHelper.open();    
    		cursor = dbHelper.fetchAllContacts(); 
    		
    		startManagingCursor(cursor);  
    		while ( cursor.moveToNext() ) 
    		{        
    			String contactID = cursor.getString( cursor.getColumnIndex(DbAdapter.KEY_CONTACTID) );
    			Log.d(TAG, "contact id = " + contactID);   
    		}  
    		dbHelper.close();
    		cursor.close();  		
    	}
    }
    potreste darmi qualche consiglio?
    è sufficiente quello che ho postato?

    grazie.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    Sposto nel forum Java.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    Nn riesco a capire cosa vorresti fare, ma credo che tu possa usare startactivityforresult e poi finish nella seconda
    Per gli Spartani e Sparta usa spartan Il mio github

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509
    Originariamente inviato da linoma
    Nn riesco a capire cosa vorresti fare, ma credo che tu possa usare startactivityforresult e poi finish nella seconda
    in pratica:

    res/layout/
    -principale.xml (pagina con un pulsante)
    -progetto.xml (pagina con campi input)

    src/
    Package: test.corso.prova
    - Main.java (activity principale con onClickListener() sul bottone)
    - progetto.java
    Package: database
    - DatabaseHelper.java
    - DbAdapter.java

    quello che vorrei fare è:
    1)faccio partire l'applicazione
    2)appare uan schermata con un bottone
    3) quando premo il bottone, viene caricata la seconda activity.
    codice:
    public void onClick(View arg0) {
    				Intent myIntent = new Intent(Main.this, progetto.class); 
    				Main.this.startActivity(myIntent); 				
    				startActivity(myIntent);
    			}
    4)la seconda activity
    carica il layout programma.xml
    codice:
    setContentView(R.layout.progetto);
    e crea il database se manca
    codice:
    dbHelper = new DbAdapter(this);  
    		dbHelper.open();    
    		cursor = dbHelper.fetchAllContacts(); 
    		
    		startManagingCursor(cursor);  
    		while ( cursor.moveToNext() ) 
    		{        
    			String contactID = cursor.getString( cursor.getColumnIndex(DbAdapter.KEY_CONTACTID) );
    			Log.d(TAG, "contact id = " + contactID);   
    		}  
    		dbHelper.close();
    		cursor.close();
    fino a qui spero di esser stato chiaro.

    ora il problema che ho:
    quando accedo alla pagina del form (progetto.xml) e provo a tornare indietro con il tasto back,
    mi ripresenta un'altra volta il form.
    è come se caricase la "pagina" del form 2 volte .
    questa cosa non succedeva prima che mettessi il collegamento al db.
    ma non capisco dove possa essere l'errore.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509
    ho riscritto tutto.
    eliminato la sezione DB e ora sembra non duplicare piu il secondo layout.

    unica cosa che ho modificato(a parte rimuovere la chiamata al db) è nel AndoridManifest

    da
    <activity android:name=".progetto" android:label="@string/titolo_addProg">

    a
    <activity android:name="progetto" android:label="@string/titolo_addProg">

    poteva esser quello?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.