Autore Topic: Aiuto con riferimento a View in layout non attivo  (Letto 517 volte)

Offline giannign1

  • Utente junior
  • **
  • Post: 85
  • Respect: +2
    • chiedetelo_se_lo_volete
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Play Store ID:
    giannign1
  • Sistema operativo:
    Windows 7
Aiuto con riferimento a View in layout non attivo
« il: 31 Agosto 2010, 17:16:27 CEST »
0
Premetto che sono nuovo ... quindi penso che il problema del codice sia quello in oggetto ma non ne sono sicuro

Per recuperare un riferimento a un View come un Button per esempio....ho sempre usato la seguente riga di codice:

((Button) findViewById(R.id.button_id))

ha sempre funzionato egregiamente

nel codice che stò per illustrare mi trovo in una situazione del genere:

Attualmente il layout utilizzato è R.layout.main
Voglio aprire un Popup che contiene un button
Voglio però modificare il text di questo button

La riga di codice scritta prima non funziona ... cioè restituisce null se gli dò come parametro l'id di questo button....l'ipotesi a cui sono arrivato è perchè il button richiesto non si trova nel layout attualmente visualizzato

Codice (Java): [Seleziona]
setContentView(R.layout.main);
...
...
...
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v1 = vi.inflate(R.layout.pop, null);
PopupWindow Popup = new PopupWindow(v1, 100, 100);
((Button)findViewById(R.id.Pulsante)).setText("Testo");
((Button)findViewById(R.id.Pulsante)).setBackgroundResource(R.drawable.d20);
Popup.showAtLocation(v1, Gravity.CENTER, 0, 0);

Così la funzione da null
allora ho provato ad aggirare la cosa (soluzione disperata) racchiudendo le due righe in cui modifico le proprietà del pulsante in un cambio di layout cioè così:

Codice (Java): [Seleziona]
....
setContentView(R.layout.pop);
((Button)findViewById(R.id.Pulsante)).setText("Testo");
((Button)findViewById(R.id.Pulsante)).setBackgroundResource(R.drawable.d20);
setContentView(R.layout.main);
.....

In questo modo pensavo di aver risolto...difatti la funzione recupera correttamente la view...e non dà nessun errore in esecuzione

Però......quando mi apre il popup...lo vedo con le impostazioni di default contenute nel file di layout pop.xml

Sembrerebbe quindi una di queste due cose:
o che le modifica ma il popup non si aggiorna anche lui con le modifiche...(ho provato ad aggiungere in fondo quindi la riga "Popup.update();") ma niente
o che le modifica ma al momento dell'apertura del layout del popup ricarica le proprietà in esso contenute....
mi sapete aiutare? Grazie
« Ultima modifica: 01 Settembre 2010, 11:04:46 CEST da MarcoDuff, Reason: Formattazione del codice java! »

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:Aiuto con riferimento a View in layout non attivo
« Risposta #1 il: 01 Settembre 2010, 11:03:51 CEST »
0
Utilizzi in modo corretto gli stati per la visualizzazione di un Popup?

Ovvero i metodi onCreateDialog e onPrepareDialog dell'Activity?
Dove stai attualmente scrivendo quel codice? In che metodo?

In particolare, in onCreateDialog crei il Popup, mentre in onPrepareDialog imposti i testi...

Off-Topic:
Quando inserisci codice java in un post, usa il pulsante in modo da formattarlo in modo corretto... per questa volta ti sistemo io il tuo post! ;)

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +507
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Aiuto con riferimento a View in layout non attivo
« Risposta #2 il: 01 Settembre 2010, 11:15:08 CEST »
+1
Hai provato per caso a fare

Codice (Java): [Seleziona]
((Button)v1.findViewById(R.id.Pulsante)).setText("Testo");
((Button)v1.findViewById(R.id.Pulsante)).setBackgroundResource(R.drawable.d20);



Offline giannign1

  • Utente junior
  • **
  • Post: 85
  • Respect: +2
    • chiedetelo_se_lo_volete
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Play Store ID:
    giannign1
  • Sistema operativo:
    Windows 7
Re:Aiuto con riferimento a View in layout non attivo
« Risposta #3 il: 01 Settembre 2010, 21:13:01 CEST »
0
Citazione da: MarcoDuff
Utilizzi in modo corretto gli stati per la visualizzazione di un Popup?

Ovvero i metodi onCreateDialog e onPrepareDialog dell'Activity?
Dove stai attualmente scrivendo quel codice? In che metodo?

In particolare, in onCreateDialog crei il Popup, mentre in onPrepareDialog imposti i testi...

Off-Topic:
Quando inserisci codice java in un post, usa il pulsante in modo da formattarlo in modo corretto... per questa volta ti sistemo io il tuo post! ;)

Tanto per cominciare Marco Duff grazie per la formattazione del post :) scusa non lo sapevo per la prossima volta provvederò

Per quanto riguarda quei metodi da te citati...beh...veramente non li ho implementati da nessuna parte....tutto quello che c'è nel mio codice riguardante il Popup l'ho riportato nel mio codice iniziale

Ad ogni modo la soluzione di Ricky funziona perfettamente ... quindi posso mettere come topic risolto

Grazie 1000 a entrambi per l'aiuto

Alla prossima