CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: gianpassa con ben 2 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 10 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 34 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 1 su 1
Discussione:

ListActivity con EditText

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    Mar 2013
    Messaggi
    22

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    ListActivity con EditText

    Salve a tutti, sono nuovo del forum, ed avrei urgentemente bisogno del vostro aiuto:
    vi spiego brevemente quello che avevo intenzione di fare:
    dall'attività principale richiamo una seconda attività che deve far apparire una listactivity con un primo campo edittext in cui io vado ad inserire qualcosa,e poi a seguire mi verranno elencati tutti i comuni di nascita prelevati da un database già esistente.
    Allora tanto per cominciare il mio problema è inizialmente quello di far apparire il primo campo edittext, e poi comincerò a lavorare sul resto.
    Per la funzione di apertura del database l'ho scritta in una classe che richiamo dall'attività corrente e non capisco dove crei il database.
    Grazie mille in anticipo
    ecco parte del codice(quello che sono riuscito a scrivere) :

    seconda attività

    codice:
    public class Comune extends ListActivity {
    	private EditText comune;
    
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		
    		comune = (EditText) findViewById(R.id.editText_comune);
    
    		//qui ho fatto semplicemente una prova per far apparire qualcosa
    		//ma che in realtà non mi serve
    		String[] paesi = getResources().getStringArray(R.array.elencoPaesi);
            ListAdapter adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,paesi);
            setListAdapter(adapter);
            
            
            
    		
    		DataBaseHelper myDbHelper = new DataBaseHelper(this);
           // myDbHelper = new DataBaseHelper(this);
     
            try {
     
            	myDbHelper.createDataBase();
     
     	} catch (IOException ioe) {
     
     		throw new Error("Unable to create database");
     
     	}
     
     	try {
     
     		myDbHelper.openDataBase();
     
     	}catch(SQLException sqle){
     
     		throw sqle;
     
     	}
    		
    		
    		
    	}
    	/*
    	@Override
    	public boolean onCreateOptionsMenu(Menu menu) {
    		// Inflate the menu; this adds items to the action bar if it is present.
    		getMenuInflater().inflate(R.menu.comune, menu);
    		return true;
    	}
    	*/
    
    }

    Per il DATABASE

    codice:
    public class DataBaseHelper extends SQLiteOpenHelper {
    	
    	private static String DB_PATH = "/data/data/example.codice_fiscale/databases/"; 
        private static String DB_NAME = "Belfiore";
        private SQLiteDatabase myDataBase; 
        private final Context myContext;
        
        /**
         * Constructor
         * Takes and keeps a reference of the passed context in order to access to the application assets and resources.
         * @param context
         */
        public DataBaseHelper(Context context) {
     
        	super(context, DB_NAME, null, 1);
            this.myContext = context;
        }	
     
      /**
         * Creates a empty database on the system and rewrites it with your own database.
         * */
        public void createDataBase() throws IOException{
     
        	boolean dbExist = checkDataBase();
     
        	if(dbExist){
        		//do nothing - database already exist
        	}else{
     
        		//By calling this method and empty database will be created into the default system path
                   //of your application so we are gonna be able to overwrite that database with our database.
            	this.getReadableDatabase();
     
            	try {
     
        			copyDataBase();
     
        		} catch (IOException e) {
     
            		throw new Error("Error copying database");
     
            	}
        	}
     
        }
     
        /**
         * Check if the database already exist to avoid re-copying the file each time you open the application.
         * @return true if it exists, false if it doesn't
         */
        private boolean checkDataBase(){
     
        	SQLiteDatabase checkDB = null;
     
        	try{
        		String myPath = DB_PATH + DB_NAME;
        		checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);
     
        	}catch(SQLiteException e){
     
        		//database does't exist yet.
     
        	}
     
        	if(checkDB != null){
     
        		checkDB.close();
     
        	}
     
        	return checkDB != null ? true : false;
        }
     
        /**
         * Copies your database from your local assets-folder to the just created empty database in the
         * system folder, from where it can be accessed and handled.
         * This is done by transfering bytestream.
         * */
        private void copyDataBase() throws IOException{
     
        	//Open your local db as the input stream
        	InputStream myInput = myContext.getAssets().open(DB_NAME);
     
        	// Path to the just created empty db
        	String outFileName = DB_PATH + DB_NAME;
     
        	//Open the empty db as the output stream
        	OutputStream myOutput = new FileOutputStream(outFileName);
     
        	//transfer bytes from the inputfile to the outputfile
        	byte[] buffer = new byte[1024];
        	int length;
        	while ((length = myInput.read(buffer))>0){
        		myOutput.write(buffer, 0, length);
        	}
     
        	//Close the streams
        	myOutput.flush();
        	myOutput.close();
        	myInput.close();
     
        }
     
        public void openDataBase() throws SQLException{
     
        	//Open the database
            String myPath = DB_PATH + DB_NAME;
        	myDataBase = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);
     
        }
     
        @Override
    	public synchronized void close() {
     
        	    if(myDataBase != null)
        		    myDataBase.close();
     
        	    super.close();
     
    	}
     
    	@Override
    	public void onCreate(SQLiteDatabase db) {
     
    	}
     
    	@Override
    	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
     
    	}
     
            // Add your public helper methods to access and get content from the database.
           // You could return cursors by doing "return myDataBase.query(....)" so it'd be easy
           // to you to create adapters for your views.
     
    }

  2.  

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy