Autore Topic: Problema inserire textview  (Letto 497 volte)

Offline Trotto23

  • Utente junior
  • **
  • Post: 94
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows Vista
Problema inserire textview
« il: 10 Febbraio 2014, 17:03:11 CET »
0
Il problema che ho e' quello di inserire un messaggio di default quando la lista presente nella mi applicazione e' vuota. Il problema e' che  se vado a vedere nella grafica del xml ho la lista che  mi occupa tutta la pagina e quindi non vi e' posto per inserire una textview. Ho cercato su internet ma non ho trovato nulla di soddisfacente che facesse al caso mio ( essendo ancora poco esperto ) Grazie mille per l' aiuto


Trotto_23

Offline andrea_g

  • Utente junior
  • **
  • Post: 58
  • Respect: +1
    • andreagorfer
    • @andreagorfer
    • Mostra profilo
    • Bondon's Crew
  • Dispositivo Android:
    Galaxy S3
  • Sistema operativo:
    Max OS X 10.9.2
Re:Problema inserire textview
« Risposta #1 il: 10 Febbraio 2014, 17:44:07 CET »
0
Potresti far apparire o un messaggio Toast o una Dialog che informi l'utente e che, al suo scomparire, ti faccia uscire dalla visualizzazione della listview vuota.
Andrea

Offline Trotto23

  • Utente junior
  • **
  • Post: 94
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows Vista
Re:Problema inserire textview
« Risposta #2 il: 10 Febbraio 2014, 17:55:09 CET »
0
non può essere un toast visto che deve rimanere fino a quando io non creo un item nella lista.
http://stackoverflow.com/questions/4088711/android-listview-default-text-when-no-items
Guarda l'immagine in questo link , deve essere così.

Offline andrea_g

  • Utente junior
  • **
  • Post: 58
  • Respect: +1
    • andreagorfer
    • @andreagorfer
    • Mostra profilo
    • Bondon's Crew
  • Dispositivo Android:
    Galaxy S3
  • Sistema operativo:
    Max OS X 10.9.2
Re:Problema inserire textview
« Risposta #3 il: 10 Febbraio 2014, 17:57:28 CET »
0
Questo in una listView? Quindi vuoi fare la stessa cosa indicata lì?
Andrea

Offline Trotto23

  • Utente junior
  • **
  • Post: 94
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows Vista
Re:Problema inserire textview
« Risposta #4 il: 10 Febbraio 2014, 17:59:58 CET »
0
Si , scusa magari non mi sono spiegato bene io . Comunque leggendo quel post non sono riuscito a risolvere il mio problema visto che non posso creare la textview nell' xml perché mi dice che non vi e' posto

Offline andrea_g

  • Utente junior
  • **
  • Post: 58
  • Respect: +1
    • andreagorfer
    • @andreagorfer
    • Mostra profilo
    • Bondon's Crew
  • Dispositivo Android:
    Galaxy S3
  • Sistema operativo:
    Max OS X 10.9.2
Re:Problema inserire textview
« Risposta #5 il: 10 Febbraio 2014, 18:05:15 CET »
+1
Non riesci ad inserire questo nel tuo codice?

Codice (Java): [Seleziona]
TextView emptyView = new TextView(getApplicationContext());
emptyView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
emptyView.setTextColor(R.color.black);
emptyView.setText(R.string.no_purchased_item);
emptyView.setTextSize(20);
emptyView.setVisibility(View.GONE);
emptyView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);

((ViewGroup)getListView().getParent()).addView(emptyView);
getListView().setEmptyView(emptyView);

Non serve inserire la TextView nell'XML mi sembra. A vedere il codice dovrebbe generarsela lui ogni qualvolta che la ListView è vuota..
Andrea

Offline Trotto23

  • Utente junior
  • **
  • Post: 94
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows Vista
Re:Problema inserire textview
« Risposta #6 il: 10 Febbraio 2014, 18:08:11 CET »
0
Riesci a spiegarmi in modo un po' più chiaro le ultime due righe di codice ?
Codice (Java): [Seleziona]
((ViewGroup)getListView().getParent()).addView(emptyView);
getListView().setEmptyView(emptyView);

Offline andrea_g

  • Utente junior
  • **
  • Post: 58
  • Respect: +1
    • andreagorfer
    • @andreagorfer
    • Mostra profilo
    • Bondon's Crew
  • Dispositivo Android:
    Galaxy S3
  • Sistema operativo:
    Max OS X 10.9.2
Re:Problema inserire textview
« Risposta #7 il: 10 Febbraio 2014, 18:16:05 CET »
0
((ViewGroup)getListView().getParent()).addView(emptyView);
Della listView implementata aggiunge una View generica, nel nostro caso una TextView chiamata emptyView.

getListView().setEmptyView(emptyView);
Setta la view che contiene la listview come vuota e gli stampa a video la textview "emptyView"

Spero di esser stato in grado di spiegarlo e di averlo reso comprensibile!  :-)
Andrea

Offline Trotto23

  • Utente junior
  • **
  • Post: 94
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows Vista
Re:Problema inserire textview
« Risposta #8 il: 10 Febbraio 2014, 18:26:25 CET »
0
Ok più o meno ho capito. Ho provato ad implementare le righe di codice che mi hai passato tu ;
Mi da due problemi:
1) Non mi riconosce il metodo getListView()
2) Il tag ViewGroup non cambia di colore ( rimane una scritta generica )



Ti ho allegato l'immagine di un pezzo di codice . Grazie per l' aiuto

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:Problema inserire textview
« Risposta #9 il: 10 Febbraio 2014, 18:43:30 CET »
+1
Al posto di getListView() (che è tipico della ListActivity) puoi usare mListView visto che lo hai già valorizzato.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Trotto23

  • Utente junior
  • **
  • Post: 94
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows Vista
Re:Problema inserire textview
« Risposta #10 il: 10 Febbraio 2014, 19:08:42 CET »
0
Perfetto, risolto il problema del getListView(). Se io volessi mettere la mie Textview in mezzo allo schermo dovrei modificare qualcosa qua? :
Codice (Java): [Seleziona]
emptyView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
e qui ? :
Codice (Java): [Seleziona]
emptyView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);


RISOLTO...
« Ultima modifica: 10 Febbraio 2014, 22:01:10 CET da Trotto23 »