Autore Topic: primo programma primo problema  (Letto 654 volte)

Offline Niciz

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    HTC desire Z
  • Sistema operativo:
    Windows 7
primo programma primo problema
« il: 16 Settembre 2011, 19:05:33 CEST »
0
Ciao a tutti.. ho comprato 1 mese fa il mio HTC e non vedo lora di sviluppare qualche applicazione seria.. purtroppo mi sono incastonato gia alla prima XD ...

Sto cercando di fare una calcolatrice ma non riesco a mettere nella stessa "facciata" (passatemi il termine) i bottoni dei pulsanti e la CheckedTextView per vsualizzare il risultato.. per i bottoni ho utilizzato la TableLayout ma per inserire anche il risultato come faccio??

Grazie in anticipo per le risposte

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:primo programma primo problema
« Risposta #1 il: 16 Settembre 2011, 19:30:01 CEST »
0
Ci puoi mostrare screenshot e codice di dove sei arrivato?
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Niciz

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    HTC desire Z
  • Sistema operativo:
    Windows 7
Re:primo programma primo problema
« Risposta #2 il: 16 Settembre 2011, 20:20:24 CEST »
0
Ciao innanzi tutto grazie per la risposta..
questo è il codice java:
Codice (Java): [Seleziona]
public class CalcolatriceActivity extends Activity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        TableLayout layout1 = new TableLayout(this);
        CheckedTextView risultato = (CheckedTextView)findViewById(R.id.checkedTextView1);
       
        setContentView(layout1);       

        TableLayout layout = new TableLayout(this);
        for(int i=0;i<3;i++)
        {       TableRow tableRow = new TableRow(this);
                tableRow.setGravity(Gravity.CENTER);
                for(int j=0;j<3;j++)
                {       Button bottone=new Button(this);
                        bottone.setText(""+(i+1+j*3));
                        tableRow.addView(bottone);
                }
                layout.addView(tableRow);
        }
        setContentView(layout);        
    }
}
come vedi ho provato a creare due layout principali uno sopra che contiene il risultato e una sotto con la griglia.. tuttavia succede sempre la stessa cosa il primo layout non viene scritto (o forse è il secondo che gli si posiziona sopra nascondendolo?!?)
Ho cercato diverse soluzioni ma non sono mai riuscito a trovarne una decente.. In precedenza avevo anche provato a mettere due bottoni allineiati orizzontalmente ma a video vedevo solo il secondo bottone perchè il primo rimaneva sotto.. Non riesco a capire dove sbaglio..
Dal codice avrai notato che la CheckedTextView prende lo stile dal XML.. qui sotto il codice:
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:weightSum="1">
    <android.widget.CheckedTextView
        android:text="CheckedTextView"
        android:layout_height="wrap_content"
        android:id="@+id/checkedTextView1"
        android:layout_width="fill_parent"
        android:textSize="30px"
        android:background="#FFF"
        android:textColor="#999"
        android:gravity="center_vertical|center_horizontal"
                >
    </android.widget.CheckedTextView>
</LinearLayout>
« Ultima modifica: 16 Settembre 2011, 22:21:20 CEST da Niciz »

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +203
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:primo programma primo problema
« Risposta #3 il: 16 Settembre 2011, 21:21:30 CEST »
0
Ciao Niciz, benvenuto.
Potresti formattare il codice java e xml con gli appositi bottoni messi a disposizione dal forum?


Allora ci sono delle cose da sistemare nella tua applicazione:
1. Usi una CheckedTextView per qualche motivo? Ti consiglio di sostituirla con una TextView semplice.
2. setContentView devi chiamarlo solo all'inizio dell' onCreate, come gia fai. Di norma setContentView dev essere chiamato una volta sola.
3. Aggiungi un elemento TableLayout sotto la TextView nel file main.xml. Poi nel codice tramite findViewById, recuperi il TableLayout e ci aggiungi le TableRows nello stesso modo in cui gia lo fai.


Happy Coding :D

« Ultima modifica: 16 Settembre 2011, 21:26:43 CEST da Qlimax »

Offline Niciz

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    HTC desire Z
  • Sistema operativo:
    Windows 7
Re:primo programma primo problema
« Risposta #4 il: 16 Settembre 2011, 22:19:50 CEST »
0
Osti grazie mille per la dritta.. infatti non ero sicuro di buttare dentro il codice così! non si ripeterà più :)

Usavo il CheckedTextView perchè non sapevo l'esistenza del TextView.. anche questo tornerà utile!!
Mentre invece potresti spiegarmi (anche brevemente) o darmi un link ancora meglio, per spiegarmi bene cosa sia questo famigerato setContentView?? l'ho usato due volte perchè pensavo servisse semplicemente come in java a inserire in un frame (che in android ho notato non esistono) i layout di defoult dentro i quali vengono messi i vari elementi.. Essendo che io h usato due layout pensavo di doverlo richiamare due volte..
Ora provo a fare quello che hai descritto nel punto 3..

Un ulteriore chiarimento:
Quando sviluppo la grafica dinamicamente (e quindi nella classe.java) devo preoccuparmi di svilupparla anche nel file.xml??

AGGIORNAMENTO:
Sono riuscito a fare quello che mi hai descritto nel punto 3. Ora però quando lo faccio partire è tutto schiacciato nell'angolo in alto. Come posso risolvere? posso aumentare la grandezza dei bottoni?
« Ultima modifica: 16 Settembre 2011, 23:23:39 CEST da Niciz »

Offline Kekko

  • Utente junior
  • **
  • Post: 88
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    W7
Re:primo programma primo problema
« Risposta #5 il: 17 Settembre 2011, 16:14:46 CEST »
0
Ti consiglio vivamente di sistemare la grafica in XML! Anche io all'inizio ero un po restìo a fare ciò però poi mi sono accorto della grandissima organizzazione che si ha facendo questo!
La grandezza dei bottoni la aumenti o dal file XML oppure lo fai direttamente dall'editor!
« Ultima modifica: 17 Settembre 2011, 16:16:36 CEST da Kekko »