Autore Topic: Aiuto Area di Progetto  (Letto 1176 volte)

Offline Pereira

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    ideos
  • Sistema operativo:
    Windows XP
Aiuto Area di Progetto
« il: 13 Maggio 2011, 18:53:59 CEST »
0
Salve ragazzi non sapendo che fare come area di progetto da presentare all'esame e non avendo molte idee su che fare mi son buttato su fare un applicazione android.
Però il tempo scarseggia e ho pochissimo tempo in quanto devo recuperare e studiare nelle altre materie :p
Dovrei fare un'applicazione che inserisca dentro un database in determinato giorno e ora la materia,in pratica l'orario scolastico.
Questa è la parte principale dove scegliere se aggiungere,aggiornare,visualizzare,eliminare:
Codice (Java): [Seleziona]
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;

public class AgendaScuola extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //creazione dei 5 bottoni principale:Aggiungi,Aggiorna,Elimina,Visualizza,Esci
        Button aggiungi=new Button(this);
        Button aggiorna=new Button(this);
        Button elimina=new Button(this);
        Button visualizza=new Button(this);
        Button esci=new Button(this);
        LinearLayout layout=new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);
        layout.setGravity(Gravity.CENTER_VERTICAL);
      //controllo click
        aggiungi.setText("Aggiungi");
        aggiungi.setOnClickListener(new View.OnClickListener()
        {
                public void onClick(View v){
                        startAggiungi();
                }
        });
        aggiorna.setText("Aggiorna");
        aggiorna.setOnClickListener(new View.OnClickListener()
        {
                public void onClick(View p){
                        startAggiorna();
                }
        });
        elimina.setText("Elimina");
        visualizza.setText("Visualizza");
        esci.setText("esci");
      //inserimento
        layout.addView(aggiungi);
        layout.addView(aggiorna);
        layout.addView(elimina);
        layout.addView(visualizza);
        layout.addView(esci);
        setContentView(layout);
    }
    //metodi per accedere alle rispettive classi
    private void startAggiungi() {
        Intent intent = new Intent(this,Aggiungi.class);
                startActivity(intent);
               
        }
    private void startAggiorna(){
        Intent intent=new Intent(this,Aggiorna.class);
        startActivity(intent);
    }
}
Quest'altro invece è la classe Aggiungi dove fa accedere al giorno specifico:
Codice (Java): [Seleziona]
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TableLayout;
import android.widget.TableRow;

public class Aggiungi extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //creazione righe
        TableLayout table=new TableLayout(this);
        TableRow row=new TableRow(this);
        TableRow row2=new TableRow(this);
        TableRow row3=new TableRow(this);
        TableRow row4=new TableRow(this);
        table.setGravity(Gravity.CENTER_VERTICAL | Gravity.TOP);
        row4.setGravity(Gravity.CENTER);
        //creazione bottoni
        Button lunedi=new Button(this);
        Button martedi=new Button(this);
        Button mercoledi=new Button(this);
        Button giovedi=new Button(this);
        Button venerdi=new Button(this);
        Button sabato=new Button(this);
        Button indietro=new Button(this);
        LinearLayout layout=new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);
        layout.setGravity(Gravity.CENTER_VERTICAL);
        //controllo click
        lunedi.setText("Lunedi");
        lunedi.setOnClickListener(new View.OnClickListener()
        {
                public void onClick(View v){
                        startLunedi();
                }
        });
        martedi.setText("Martedi");
        martedi.setOnClickListener(new View.OnClickListener()
        {
                public void onClick(View v){
                        startMartedi();
                }
        });
        mercoledi.setText("Mercoledi");
        mercoledi.setOnClickListener(new View.OnClickListener()
        {
                public void onClick(View v){
                        startMercoledi();
                }
        });
        giovedi.setText("Giovedi");
        giovedi.setOnClickListener(new View.OnClickListener()
        {
                public void onClick(View v){
                        startGiovedi();
                }
        });
        venerdi.setText("Venerdi");
        venerdi.setOnClickListener(new View.OnClickListener()
        {
                public void onClick(View v){
                        startVenerdi();
                }
        });
        sabato.setText("Sabato");
        sabato.setOnClickListener(new View.OnClickListener()
        {
                public void onClick(View v){
                        startSabato();
                }
        });
        indietro.setText("Indietro");
        indietro.setOnClickListener(new View.OnClickListener()
        {
                public void onClick(View v){
                        startAgenda();
                }
        });
        //inserimento in riga
        row.addView(lunedi);
        row.addView(martedi);
        table.addView(row);
        row2.addView(mercoledi);
        row2.addView(giovedi);
        table.addView(row2);
        row3.addView(venerdi);
        row3.addView(sabato);
        table.addView(row3);
        row4.addView(indietro);
        table.addView(row4);
        layout.addView(table);
        setContentView(layout);
   }
    //metodi per accedere alle relative classi
    private void startLunedi() {
        Intent intent = new Intent(this,Lunedi.class);
                startActivity(intent);
        }
    private void startMartedi() {
        Intent intent = new Intent(this,Martedi.class);
                startActivity(intent);
        }
    private void startMercoledi() {
        Intent intent = new Intent(this,Mercoledi.class);
                startActivity(intent);
        }
    private void startGiovedi() {
        Intent intent = new Intent(this,Giovedi.class);
                startActivity(intent);
        }
    private void startVenerdi() {
        Intent intent = new Intent(this,Venerdi.class);
                startActivity(intent);
        }
    private void startSabato() {
        Intent intent = new Intent(this,Sabato.class);
                startActivity(intent);
        }
    private void startAgenda() {
        Intent intent = new Intent(this,AgendaScuola.class);
                startActivity(intent);
        }
}
Ogni giorno porterà alla scelta dell'ora dove metterci la materia:
Codice (Java): [Seleziona]
import io.agendascuola.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TableLayout;
import android.widget.TableRow;

public class Mercoledi extends Activity {
    /** Called when the activity is first created. */
        @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //creazione righe
        TableLayout table=new TableLayout(this);
        TableRow row=new TableRow(this);
        TableRow row2=new TableRow(this);
        TableRow row3=new TableRow(this);
        TableRow row4=new TableRow(this);
        table.setGravity(Gravity.CENTER_VERTICAL | Gravity.TOP);
        row4.setGravity(Gravity.CENTER);
        //creazione bottoni
        Button ora1=new Button(this);
        Button ora2=new Button(this);
        Button ora3=new Button(this);
        Button ora4=new Button(this);
        Button ora5=new Button(this);
        Button ora6=new Button(this);
        Button indietro=new Button(this);
        LinearLayout layout=new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);
        layout.setGravity(Gravity.CENTER_VERTICAL);
      //controllo click
        ora1.setText("1°Ora");
        ora1.setOnClickListener(new View.OnClickListener()
        {
                public void onClick(View v){
                        start1ora();
                }
        });
        ora2.setText("2°Ora");
        ora2.setOnClickListener(new View.OnClickListener()
        {
                public void onClick(View v){
                        start2ora();
                }
        });
        ora3.setText("3°Ora");
        ora3.setOnClickListener(new View.OnClickListener()
        {
                public void onClick(View v){
                        start3ora();
                }
        });
        ora4.setText("4°Ora");
        ora4.setOnClickListener(new View.OnClickListener()
        {
                public void onClick(View v){
                        start4ora();
                }
        });
        ora5.setText("5°Ora");
        ora5.setOnClickListener(new View.OnClickListener()
        {
                public void onClick(View v){
                        start5ora();
                }
        });
        ora6.setText("6°Ora");
        ora6.setOnClickListener(new View.OnClickListener()
        {
                public void onClick(View v){
                        start6ora();
                }
        });
        indietro.setText("Indietro");
        indietro.setOnClickListener(new View.OnClickListener()
        {
                public void onClick(View v){
                        startAggiungi();
                }
        });
      //inserimento in riga
        row.addView(ora1);
        row.addView(ora2);
        table.addView(row);
        row2.addView(ora3);
        row2.addView(ora4);
        table.addView(row2);
        row3.addView(ora5);
        row3.addView(ora6);
        table.addView(row3);
        row4.addView(indietro);
        table.addView(row4);
        layout.addView(table);
        setContentView(layout);
        }
        //metodi per accedere alle relative classi
        private void start1ora() {
        Intent intent = new Intent(this,Ora1mercoledi.class);
                startActivity(intent);
        }
    private void start2ora() {
        Intent intent = new Intent(this,Martedi.class);
                startActivity(intent);
        }
    private void start3ora() {
        Intent intent = new Intent(this,Mercoledi.class);
                startActivity(intent);
        }
    private void start4ora() {
        Intent intent = new Intent(this,Giovedi.class);
                startActivity(intent);
        }
    private void start5ora() {
        Intent intent = new Intent(this,Venerdi.class);
                startActivity(intent);
        }
    private void start6ora() {
        Intent intent = new Intent(this,Sabato.class);
                startActivity(intent);
        }
    private void startAggiungi() {
        Intent intent = new Intent(this,Aggiungi.class);
                startActivity(intent);
        }
}
Fin qua ci siamo  :-)
Poi ho modificato il DB,che ho trovato in questo sito,per le mie esigenze:
Codice (Java): [Seleziona]
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;

public class DBAdapter {  
        SQLiteDatabase mDb;
        DbHelper mDbHelper;
        Context mContext;
        private static final String DB_NAME="AgendaScuola"; //nome del db
        private static final int DB_VERSION=1; //numero di versione del nostro db
        public DBAdapter(Context ctx){
                mContext=ctx;
                mDbHelper=new DbHelper(ctx, DB_NAME, null, DB_VERSION); //quando istanziamo questa classe, istanziamo anche l'helper (vedi sotto)      
        }
        public void open(){  //il database su cui agiamo è leggibile/scrivibile
                mDb=mDbHelper.getWritableDatabase();
               
        }
        public void close(){ //chiudiamo il database su cui agiamo
                mDb.close();
        }
        //i seguenti 2 metodi servono per la lettura/scrittura del db. aggiungete e modificate a discrezione
        public void insert(String giorno,String ora,String materia){ //metodo per inserire i dati
                ContentValues cv=new ContentValues();
                cv.put(ProductsMetaData.PRODUCT_GIORNO_KEY, giorno);
                cv.put(ProductsMetaData.PRODUCT_ORA_KEY, ora);
                cv.put(ProductsMetaData.PRODUCT_MATERIA_KEY, materia);
                mDb.insert(ProductsMetaData.PRODUCTS_TABLE, null, cv);
        }
        public Cursor fetchProducts(){ //metodo per fare la query di tutti i dati
                return mDb.query(ProductsMetaData.PRODUCTS_TABLE, null,null,null,null,null,null);              
        }
        static class ProductsMetaData {  // i metadati della tabella, accessibili ovunque
                static final String PRODUCTS_TABLE = "AgendaScuola";
                static final String ID = "_id";
                static final String PRODUCT_GIORNO_KEY = "giorno";
                static final String PRODUCT_ORA_KEY = "ora";
                static final String PRODUCT_MATERIA_KEY= "materia";
        }
        private static final String PRODUCTS_TABLE_CREATE = "CREATE TABLE IF NOT EXISTS "  //codice sql di creazione della tabella
                        + ProductsMetaData.PRODUCTS_TABLE + " ("
                        + ProductsMetaData.ID+ " integer primary key autoincrement, "
                        + ProductsMetaData.PRODUCT_GIORNO_KEY + " text not null, "
                        + ProductsMetaData.PRODUCT_ORA_KEY + " text not null,"
                        + ProductsMetaData.PRODUCT_GIORNO_KEY + " text not null);";
        private class DbHelper extends SQLiteOpenHelper { //classe che ci aiuta nella creazione del db
                public DbHelper(Context context, String name, CursorFactory factory,int version) {
                        super(context, name, factory, version);
                }
                @Override
                public void onCreate(SQLiteDatabase _db) { //solo quando il db viene creato, creiamo la tabella
                        _db.execSQL(PRODUCTS_TABLE_CREATE);
                }
                @Override
                public void onUpgrade(SQLiteDatabase _db, int oldVersion, int newVersion) {
                        //qui mettiamo eventuali modifiche al db, se nella nostra nuova versione della app, il db cambia numero di versione

                }
        }
}
E questa invece è la classe che gestisce l'inserimento nel database...
Codice (Java): [Seleziona]
import io.agendascuola.DBAdapter;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;


public class Ora1mercoledi extends Activity {
    /** Called when the activity is first created. */
        @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //creo il db
        DBAdapter db=new DBAdapter(this);
        //creazione righe
        TableLayout table=new TableLayout(this);
        TableRow row=new TableRow(this);
        TableRow row2=new TableRow(this);
        TableRow row3=new TableRow(this);
        table.setGravity(Gravity.CENTER_VERTICAL | Gravity.TOP);
        row3.setGravity(Gravity.CENTER);
        //definisco ora,giorno e materia
        TextView a=new TextView(this);
        TextView b=new TextView(this);
        EditText mat=new EditText(this);
        String ora="7.55";
        String giorno="mercoledi";
        //cast di mat
        final String materia=mat.getText().toString();
        Button conferma=new Button(this);
        LinearLayout layout=new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);
        layout.setGravity(Gravity.CENTER_VERTICAL);
        //inserimento in riga
        a.setText(ora);
        b.setText(giorno);
        row.addView(a);
        row.addView(b);
        table.addView(row);
        row2.addView(mat);
        table.addView(row2);
        conferma.setText("Conferma");
        row3.addView(conferma);
        table.addView(row3);
        layout.addView(table);
        setContentView(layout);
      //apro il db
        db.open();
        //se materia non è nulla e se non è gia riempita inserisco i dati
        if(materia!=null && db.fetchProducts().getCount()==0)
                {
                db.insert(giorno,ora,materia);
                }
        //chiudo il db
        db.close();
        //controllo il click
        conferma.setOnClickListener(new View.OnClickListener()
        {
                public void onClick(View v){
                        startConferma();
                }
        });
    }
        //metodo per accedere alla rispettiva classe
        private void startConferma() {
        Intent intent = new Intent(this,Mercoledi.class);
                startActivity(intent);
        }
}

Che però mi da problemi qui
...ora devo capire come utilizzare i content provider o qualcosa che mi faccio interagire le activity usando lo stesso db...queste son le activity che dovrò creare!
aggiorna,elimina e visualizza;)


Spero mi possiate aiutare presto....vi ringrazio in anticipo;-)
« Ultima modifica: 16 Maggio 2011, 17:54:13 CEST da Pereira »

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Aiuto Area di Progetto
« Risposta #1 il: 13 Maggio 2011, 19:15:59 CEST »
0
Salve ragazzi non sapendo che fare come area di progetto da presentare all'esame e non avendo molte idee su che fare mi son buttato su fare un applicazione android.
Però il tempo scarseggia e ho pochissimo tempo in quanto devo recuperare e studiare nelle altre materie :p

Lodevole la volontà di buttarsi sulle applicazioni android, però se hai fretta e poco tempo calibra bene il taglio che vuoi dare all'applicazione.  :-)

Spero mi possiate aiutare presto....vi ringrazio in anticipo;-)

Visto sei nuovo del forum, ti elenco un po' di consigli sparsi che servono a te per esprimere meglio il tuo problema, ma soprattutto per far venire voglia di rispondere a chi legge la tua richiesta.  ;-)
- Per il codice usa il tag JAVA, non quello generico, così aumenta la leggibilità
- Sempre per aumentare la leggibilità, commenta il codice dicendo cosa fai
- Spiega in modo esplicito il problema, non dire semplicemente "ho problemi"
- Se l'applicazione ti genera un errore, posta il relativo estratto dal LogCat
- Se non sai cosa è il LogCat, fingi di saperlo e corri a studiare come si usa

Tornando al tuo problema... io non ho capito qual'è.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Pereira

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    ideos
  • Sistema operativo:
    Windows XP
Re:Aiuto Area di Progetto
« Risposta #2 il: 13 Maggio 2011, 21:22:57 CEST »
0
Lodevole la volontà di buttarsi sulle applicazioni android, però se hai fretta e poco tempo calibra bene il taglio che vuoi dare all'applicazione.  :-)

cioè?:-)

Visto sei nuovo del forum, ti elenco un po' di consigli sparsi che servono a te per esprimere meglio il tuo problema, ma soprattutto per far venire voglia di rispondere a chi legge la tua richiesta.  ;-)
- Per il codice usa il tag JAVA, non quello generico, così aumenta la leggibilità
- Sempre per aumentare la leggibilità, commenta il codice dicendo cosa fai
- Spiega in modo esplicito il problema, non dire semplicemente "ho problemi"
- Se l'applicazione ti genera un errore, posta il relativo estratto dal LogCat
- Se non sai cosa è il LogCat, fingi di saperlo e corri a studiare come si usa

Tornando al tuo problema... io non ho capito qual'è.

-messo il tag java
-il commento l'aggiungo dopo:-)
-ci controllo,comunque l'applicazione parte,però quando provo a cliccare conferma dopo aver aggiunto dei dati dentro la classe "Martedi" dice che "the application has stopped unexpectedly"

comunque dovrei inserire i dati nel db dopo che ho cliccato conferma:
Codice (Java): [Seleziona]
conferma.setOnClickListener(new View.OnClickListener()
        {
                public void onClick(View v){
                        db.insertTitle(giorno,a,mat);
                        startAggiungi();
                }
senza db.insertTitle(giorno,a,mat); non da problemi però cosi non gestisco quello che voglio fare io...
o basta metterlo qui?
Codice (Java): [Seleziona]
conferma.setText("Conferma");
        db.insertTitle(giorno,a,mat);
        db.close();
        conferma.setOnClickListener(new View.OnClickListener()
        {
                public void onClick(View v){
                        startAggiungi();
                }
        });

Offline Pereira

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    ideos
  • Sistema operativo:
    Windows XP
Re:Aiuto Area di Progetto
« Risposta #3 il: 14 Maggio 2011, 16:42:52 CEST »
0
poi ho alcuni dubbi su come faccio a utilizzare il database creato in una activity in un' altra...

esempio:
metto i dati dentro la giornata di martedi riempiendo il db....poi torno alla schermata principale e vado su visualizza e facendo una query(ho bisogno di una mano anche su questo) dovrebbe dire che materia c'è!
come faccio a farlo?

Offline Pereira

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    ideos
  • Sistema operativo:
    Windows XP
Re:Aiuto Area di Progetto
« Risposta #4 il: 16 Maggio 2011, 17:10:01 CEST »
0
modificato il primo post con aggiornamento dei codice e aggiunta di "mini commento" ;-)
ora devo capire come utilizzare i content provider o qualcosa che mi faccio interagire le activity usando lo stesso db...queste son le activity che dovrò creare!
aggiorna,elimina e visualizza;)
« Ultima modifica: 16 Maggio 2011, 17:19:02 CEST da Pereira »