Autore Topic: Stringhe non caricate e problema posizionamento componenti  (Letto 715 volte)

Offline harlandraka94

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Carrefour CT704
  • Sistema operativo:
    Windows 7, purtroppo.
Stringhe non caricate e problema posizionamento componenti
« il: 29 Febbraio 2012, 17:38:00 CET »
0
Salve a tutti, sono nuovo del forum e sto iniziando a scrivere dei semplicissimi snippet per familiarizzare con Android, dato che uso Java da 5 anni ma non ho mai sviluppato per questa piattaforma.
Il mio problema è che utilizzando il metodo procedurale per la costruzione dell'interfaccia grafica mi funziona tutto alla perfezione, però visto che c'è maggior possibilità che alcune classi e metodi vengano cambiati piuttosto che l'architettura del descrittore xml, ho voluto provare a gestire tutto con metodo dichiarativo. Ora, questa è la mia classe principale:

Codice (Java): [Seleziona]
package org.dero.AndroidTest01;


import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

Questo è il descrittore xml per R.layout.main:

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   >
<Button
   android:id="@+id/buttonCliccami"
   android:layout_width="100dip"
   android:layout_height="30dip"
   android:text="@string/cliccami"
   android:paddingTop="100dip"
   android:paddingLeft="100dip"
   />
</AbsoluteLayout>

Questo invece è il file strings.xml
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">AndroidTest01</string>
    <string name="cliccami">Cliccami!</string>
</resources>

I problemi sono due:
  • La stringa "Cliccami!" del bottone dichiarato nel layout non viene caricata, ovvero c'è il bottone ma è bianco, senza nessuna scritta al suo interno
  • Il bottone non viene posizionato correttamente
Sicuramente sarà un problema banale, però essendo alle prime armi ancora non lo vedo. Sapete aiutarmi?
Grazie mille in anticipo, ciao!

Offline theBaffo

  • Utente normale
  • ***
  • Post: 164
  • Respect: +24
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Windows 8.1
Re:Stringhe non caricate e problema posizionamento componenti
« Risposta #1 il: 29 Febbraio 2012, 17:55:00 CET »
0
Penso che il problema sia il padding del button:

te stai creando un button 100x30 dpi, e dai un paddingTop e un paddingLeft di 100dpi: il padding è la distanza del contenuto del button dai bordi dello stesso... credo che tu volessi dare un margin al button, cosi da distanziarlo dal bordo...

spero di essermi spiegato bene!  :-)
Se ti sono stato utile, premi "thanks" ;)

"Errare è umano, ma per incasinare davvero tutto è necessario un computer" - Arthur Bloch

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:Stringhe non caricate e problema posizionamento componenti
« Risposta #2 il: 29 Febbraio 2012, 17:58:11 CET »
0
Per la string, è strano quello che accade. Se ci metti app_name cosa accade?

Per il problema di layout, come ti hanno già indicato, considera che il padding è sempre interno al bordo del button, mentre il margin esterno. Altrimenti devi mettere un padding all'oggetto padre. Come nota a margine, l'AbsoluteLayout è stato deprecato, sarebbe meglio non usarlo.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline harlandraka94

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Carrefour CT704
  • Sistema operativo:
    Windows 7, purtroppo.
Re:Stringhe non caricate e problema posizionamento componenti
« Risposta #3 il: 29 Febbraio 2012, 18:00:41 CET »
0
Penso che il problema sia il padding del button:

te stai creando un button 100x30 dpi, e dai un paddingTop e un paddingLeft di 100dpi: il padding è la distanza del contenuto del button dai bordi dello stesso... credo che tu volessi dare un margin al button, cosi da distanziarlo dal bordo...

spero di essermi spiegato bene!  :-)
Mmmm si ho capito, ma la mia domanda è: come faccio?


Per la string, è strano quello che accade. Se ci metti app_name cosa accade?

Per il problema di layout, come ti hanno già indicato, considera che il padding è sempre interno al bordo del button, mentre il margin esterno. Altrimenti devi mettere un padding all'oggetto padre. Come nota a margine, l'AbsoluteLayout è stato deprecato, sarebbe meglio non usarlo.

devo mettere app_name dentro il descrittore delle stringhe o nel descrittore del layout?

Offline theBaffo

  • Utente normale
  • ***
  • Post: 164
  • Respect: +24
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Windows 8.1
Re:Stringhe non caricate e problema posizionamento componenti
« Risposta #4 il: 29 Febbraio 2012, 18:07:22 CET »
0
Non vedi la scritta perchè e fuori dal pulsante!  :-) se intanto togli i padding, la scritta la dovresti vedere  ;-)

Per mettere i margin, sostituisci:

Codice (XML): [Seleziona]
android:paddingTop="100dip"
android:paddingLeft="100dip"

con questo:

Codice (XML): [Seleziona]
android:layout_marginTop="100dip"
android:layout_marginLeft="100dip"
« Ultima modifica: 29 Febbraio 2012, 18:09:06 CET da theBaffo »
Se ti sono stato utile, premi "thanks" ;)

"Errare è umano, ma per incasinare davvero tutto è necessario un computer" - Arthur Bloch

Offline harlandraka94

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Carrefour CT704
  • Sistema operativo:
    Windows 7, purtroppo.
Re:Stringhe non caricate e problema posizionamento componenti
« Risposta #5 il: 29 Febbraio 2012, 18:10:07 CET »
0
Non vedi la scritta perchè e fuori dal pulsante!  :-)

se intanto togli i padding, la scritta la dovresti vedere  ;-)

Ok, fin qui c'ero arrivato, mi hai detto che in quel modo il padding è INTERNO al bottone, quindi ho capito che si trattava di padding della scritta rispetto ai bordi del bottone, mentre io vorrei posizionare manualmente il bottone a determinate coordinate, la stessa cosa che fanno i metodi setX e setY a partire da Android 3, però da xml, appunto perchè quei due metodi non posso usarli sul mio tablet che ha android 2

Offline theBaffo

  • Utente normale
  • ***
  • Post: 164
  • Respect: +24
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Windows 8.1
Re:Stringhe non caricate e problema posizionamento componenti
« Risposta #6 il: 29 Febbraio 2012, 18:17:08 CET »
0
leggi sopra, ho modificato ma te avevi già scritto... cosi dovresti risolvere!  :-)
Se ti sono stato utile, premi "thanks" ;)

"Errare è umano, ma per incasinare davvero tutto è necessario un computer" - Arthur Bloch

Offline harlandraka94

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Carrefour CT704
  • Sistema operativo:
    Windows 7, purtroppo.
Re:Stringhe non caricate e problema posizionamento componenti
« Risposta #7 il: 29 Febbraio 2012, 18:22:03 CET »
0
leggi sopra, ho modificato ma te avevi già scritto... cosi dovresti risolvere!  :-)

Ma applicando il margin direttamente al layout non dovrebbero essere spostati tutti i componenti presenti in quella view?

Offline theBaffo

  • Utente normale
  • ***
  • Post: 164
  • Respect: +24
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Windows 8.1
Re:Stringhe non caricate e problema posizionamento componenti
« Risposta #8 il: 29 Febbraio 2012, 18:23:35 CET »
0
Infatti devi sostituire negli attributi dell button, non del layout  :-)
Se ti sono stato utile, premi "thanks" ;)

"Errare è umano, ma per incasinare davvero tutto è necessario un computer" - Arthur Bloch

Offline harlandraka94

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Carrefour CT704
  • Sistema operativo:
    Windows 7, purtroppo.
Re:Stringhe non caricate e problema posizionamento componenti
« Risposta #9 il: 29 Febbraio 2012, 18:27:34 CET »
0
Infatti devi sostituire negli attributi dell button, non del layout  :-)

ah ok, grazie, ma non mi funziona lo stesso, il bottone rimane nello stesso punto, la differenza è che il testo al suo interno mi viene spostato un pochino e non riesco a leggerlo tutto...

Offline theBaffo

  • Utente normale
  • ***
  • Post: 164
  • Respect: +24
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Windows 8.1
Re:Stringhe non caricate e problema posizionamento componenti
« Risposta #10 il: 29 Febbraio 2012, 21:17:17 CET »
0
ah ok, grazie, ma non mi funziona lo stesso, il bottone rimane nello stesso punto, la differenza è che il testo al suo interno mi viene spostato un pochino e non riesco a leggerlo tutto...

Prova ad usare un RelativeLayout, invece che l'absolute... dopodiche imposta un padding al layout, non al button  :-)
Se ti sono stato utile, premi "thanks" ;)

"Errare è umano, ma per incasinare davvero tutto è necessario un computer" - Arthur Bloch

Offline harlandraka94

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Carrefour CT704
  • Sistema operativo:
    Windows 7, purtroppo.
Re:Stringhe non caricate e problema posizionamento componenti
« Risposta #11 il: 29 Febbraio 2012, 21:23:55 CET »
0
Ma a me il padding serve al button, solo il bottone deve avere quella distanza dai bordi, gli altri componenti devono comportarsi come se non avessero padding...