Autore Topic: Creare bottoni dinamicamente  (Letto 2272 volte)

Offline wariat

  • Nuovo arrivato
  • *
  • Post: 28
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc magic
  • Sistema operativo:
    Windows
Creare bottoni dinamicamente
« il: 04 Luglio 2011, 21:18:49 CEST »
0
Ciao a tutti, vi espongo il mio problema..

allora dovrei creare dei bottoni dinamicamente, ovvero crearne da 1 a N in modo automatico. fin qui nessun problema.

questi bottoni però dovranno avere un aspetto ben preciso prendendolo da un file xml

questo è il mio codice, praticamente prendo il linearlayout e lo popolo con 5 bottoni, in questo caso generici.. ma se volessi associare un xml che descrive bene il bottone come posso fare????
Codice (Java): [Seleziona]
LinearLayout view_luce= (LinearLayout) findViewById(R.id.linearLayout1);
Button luce[] = new Button[10];
       
        for (int i=0;i<5;i++){
                luce[i] = new Button (this);
                luce[i].setText("luce" + i);
                view_luce.addView(luce[i]);
                }

Offline Zappescu

  • Utente junior
  • **
  • Post: 110
  • Respect: +7
    • Mostra profilo
    • Tic Tank Toe
  • Dispositivo Android:
    HTC Magic
  • Play Store ID:
    Zapmobilegames
  • Sistema operativo:
    Win XP
Re:Creare bottoni dinamicamente
« Risposta #1 il: 05 Luglio 2011, 00:07:21 CEST »
0
Citazione
ma se volessi associare un xml che descrive bene il bottone
Intendi associare al pulsante che hai creato altre caratteristiche come background, width, height etc.?
Non credo tu lo possa fare dal momento che l'hai creato a runtime. Se lo crei a runtime, devi associare tutte le opzioni a runtime, come hai fatto per il text. Ad ogni modo, anche se in xml è più facile, puoi ricreare tutte le caratteristiche anche a runtime.
Zapmobilegames website
Tic Tank Toe: a new approach for a classic game

Offline denper

  • Utente normale
  • ***
  • Post: 290
  • Respect: +60
    • Mostra profilo
    • Anddenper
  • Dispositivo Android:
    Moto G
  • Play Store ID:
    denper
  • Sistema operativo:
    Window 7, Windows XP
Re:Creare bottoni dinamicamente
« Risposta #2 il: 05 Luglio 2011, 08:33:49 CEST »
+1
Ciao,
non credo ci sia la possibilità di attribuire uno style in modo dinamico ad un bottone. Potresti allegare il file xml che descrive l'aspetto del bottone, così possiamo vedere se tali proprietà possono essere impostate direttamente da codice.

denper
Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. [A.Einstein]

Proteggi la tua privacy! Utilizza GhostPhone! https://play.google.com/store/apps/details?id=com.denper.gp
Giochi a Winforlife e Superenalotto e sei stanco di controllare le tue schedine manualmente? Prova Checkwin: https://play.google.com/store/apps/details?id=com.denper.checkwintrial

Offline wariat

  • Nuovo arrivato
  • *
  • Post: 28
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc magic
  • Sistema operativo:
    Windows
Re:Creare bottoni dinamicamente
« Risposta #3 il: 05 Luglio 2011, 14:20:41 CEST »
0
Ciao,
non credo ci sia la possibilità di attribuire uno style in modo dinamico ad un bottone. Potresti allegare il file xml che descrive l'aspetto del bottone, così possiamo vedere se tali proprietà possono essere impostate direttamente da codice.

denper

sicuri?? a me sembra strano che non si possa associare un "foglio di stile" ad un bottone creato a runtime.. preferirei evitare di farlo via codice visto che con xml è tutto più leggibile..

Offline denper

  • Utente normale
  • ***
  • Post: 290
  • Respect: +60
    • Mostra profilo
    • Anddenper
  • Dispositivo Android:
    Moto G
  • Play Store ID:
    denper
  • Sistema operativo:
    Window 7, Windows XP
Re:Creare bottoni dinamicamente
« Risposta #4 il: 05 Luglio 2011, 14:31:50 CEST »
0
Abbastanza sicuro.
Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. [A.Einstein]

Proteggi la tua privacy! Utilizza GhostPhone! https://play.google.com/store/apps/details?id=com.denper.gp
Giochi a Winforlife e Superenalotto e sei stanco di controllare le tue schedine manualmente? Prova Checkwin: https://play.google.com/store/apps/details?id=com.denper.checkwintrial

Offline wariat

  • Nuovo arrivato
  • *
  • Post: 28
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc magic
  • Sistema operativo:
    Windows
Re:Creare bottoni dinamicamente
« Risposta #5 il: 05 Luglio 2011, 15:51:54 CEST »
0
Ciao,
non credo ci sia la possibilità di attribuire uno style in modo dinamico ad un bottone. Potresti allegare il file xml che descrive l'aspetto del bottone, così possiamo vedere se tali proprietà possono essere impostate direttamente da codice.

denper

questo l'xml che dovrei ricreare :

Codice (XML): [Seleziona]
<Button android:id="@+id/luce"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:drawableTop="@drawable/icon"></Button>

ho risolto facendo così :
Codice (Java): [Seleziona]
for (int i=0;i<5;i++){

                luce[i] = new Button (this);
                luce[i].setText("luce " + (i+1));
                luce[i].setId(i);
                luce[i].setLayoutParams(params);
                luce[i].setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.icon, 0, 0);
                view_luce.addView(luce[i]);
                 
                }

usando l'xml sarebbe comunque molto più comodo e immediato..
« Ultima modifica: 05 Luglio 2011, 16:00:17 CEST da wariat »

Offline teskio

  • Moderatore globale
  • Utente normale
  • *****
  • Post: 387
  • Respect: +118
    • Github
    • Google+
    • Mostra profilo
    • Skullab
  • Dispositivo Android:
    Cubot GT99 / SurfTab Ventos 10.1
  • Play Store ID:
    Skullab Software
  • Sistema operativo:
    windows 7 / ubuntu 12.04
Re:Creare bottoni dinamicamente
« Risposta #6 il: 05 Luglio 2011, 17:03:07 CEST »
0
Bhè no, in teoria la cosa è fattibile, dichiarando uno stile e applicandolo quando si crea il Button attraverso il costruttore : Button(Context context, AttributeSet attrs)

In pratica si potrebbe fare così :

Codice (Java): [Seleziona]
 
Resources resources = getContext().getResources() ;
XmlPullParser parser = resources.getXml(myStyleId);
AttributeSet attrs = Xml.asAttributeSet(parser);

Button mButton = new Button(this,attrs) ;

Dovrai pertanto dichiarare un set di stili in formato xml attraverso il tag <resources>, dai un'occhiata qui per maggiori info : Applying Styles and Themes | Android Guide

Non ho testato il codice a dire il vero, ma in teoria in base alla doc. ufficiale dovrebbe funzionare  :-P fammi sapere