Ho una vista personalizzata e desidero accedere a una stringa disponibile nella sua attività. Ho visto il codice che utilizza getContext()
nella classe view, ma non esiste alcun metodo per accedere alla stringa che è stata resa disponibile alla sua attività tramite un intent. Come rendere una stringa in un'attività disponibile per la sua visualizzazione personalizzata?In che modo una visualizzazione personalizzata può accedere alla sua attività?
risposta
Il metodo getContext() nei rendimenti vista della classe il contesto che è stato passato al suo costruttore. Di solito è l'attività che desideri (l'attività estende il contesto). Quindi questo probabilmente funziona per voi:
((Activity)getContext()).someMethod(...);
Sono ancora un noob per java e Android, quindi questo potrebbe non funzionare, ma sto solo cercando di aiutare.
Si dovrebbe essere in grado di passare in parametri di intenti/attività che utilizzano "putExtra" e "getExtra", per esempio:
Nella vostra attività principale:
Intent EditDebtActivity = new Intent(getBaseContext(), EditDebt.class);
EditDebtActivity.putExtra(DbAdapter.KEY_ROWID,dRowID);
EditDebtActivity.putExtra(DbAdapter.KEY_DEBT, dName);
EditDebtActivity.putExtra(DbAdapter.KEY_STARTINGAMOUNT, dStartAmount);
EditDebtActivity.putExtra(DbAdapter.KEY_CURRENTAMOUNT, dCurrentAmount);
EditDebtActivity.putExtra(DbAdapter.KEY_DUEDATE, dDueDate);
EditDebtActivity.putExtra(DbAdapter.KEY_INTERESTRATE, dInterestRate);
EditDebtActivity.putExtra(DbAdapter.KEY_MINPAYMENT, dMinPayment);
startActivity(EditDebtActivity);
Poi nel "onCreate" metodo nella nuova visualizzazione, utilizzare il seguente:
Bundle extras = getIntent().getExtras();
dRowID = extras.getLong(DbAdapter.KEY_ROWID);
String rowidname = extras.getString(DbAdapter.KEY_DEBT);
currentamount = extras.getDouble(DbAdapter.KEY_CURRENTAMOUNT);
startingamount = extras.getDouble(DbAdapter.KEY_STARTINGAMOUNT);
duedate = extras.getInt(DbAdapter.KEY_DUEDATE);
ovviamente ho usato il mio codice qui, ma sto passando le informazioni riga in una nuova attività quando un utente fa clic su un pulsante.
Vedi questo link Così, per ulteriori informazioni su come usare putextra e getextra: Sending arrays with Intent.putExtra
Spero che questo aiuti, è il mio primo contributo alla comunità :)
R Hi tahnks per il primo contributo :) ho un listview che elenca i nomi dei file JPEG alla radice. quando l'utente seleziona, questo genera un intent con un nome file. l'attività di ricezione può ottenere il nome file ma la vista che è una vista personalizzata non può accedere al nome file. Grazie. – turtleboy
- 1. Come accedere in modo programmatico alla modalità di visualizzazione target?
- 2. modo conveniente scrivere interfaccia generica che indica alla sua implementor
- 3. Come impostare una visualizzazione personalizzata in schede di navigazione del ActionBar e rendere le schede si adattano alla sua altezza?
- 4. Posso accedere alla mia classe .NET personalizzata da PowerShell?
- 5. CollapsingToolbarLayout con una visualizzazione personalizzata
- 6. Android: come testare una visualizzazione personalizzata?
- 7. corrispondenza di visualizzazione secondaria alla sua superview usando autolayout
- 8. Come accedere alla vista Attività genitore in frammento
- 9. SqlBulkCopy non può accedere alla tabella
- 10. In che modo l'app Gmail raggiunge la sua gerarchia di visualizzazione semplice?
- 11. JavaScript - In che modo Disqus gestisce la sua funzione "disqus_config" che contiene una proprietà non definita?
- 12. Un utente può accedere alla cartella% APPDATA%
- 13. Visualizzazione selettore foto personalizzata
- 14. C# - indicizzatore alla sua applicazione significativa
- 15. Come centrare una visualizzazione personalizzata su Android?
- 16. carica visualizzazione personalizzata in MBProgressHUD
- 17. come aggiungere una vista personalizzata alla palette in Android Studio?
- 18. Visualizzazione mappa personalizzata che si interrompe in initWithCoder in swift
- 19. Aggiunta di una visualizzazione personalizzata per UINavigationController
- 20. Android visualizzazione personalizzata Constructor
- 21. Aggiungi visualizzazione personalizzata alla destra della barra degli strumenti
- 22. Tela non disegna in visualizzazione personalizzata
- 23. Visualizzazione dell'attività con animazione personalizzata
- 24. WF4: attività personalizzata con attività figlio
- 25. Populate ListFragments con una visualizzazione personalizzata?
- 26. Visualizzazione QDockWidget personalizzata
- 27. Come accedere alla matrice in modo circolare in javascript
- 28. Visualizzazione personalizzata non gonfiaggio
- 29. visualizzazione personalizzata con il layout
- 30. ActionBarSherlock: come accedere alla visualizzazione dei pulsanti home?
simao perfetto, grazie mille. – turtleboy
È una buona soluzione per i casi in cui la vista viene creata direttamente dall'attività. Questo non è sempre il caso. Se la vista è una vista di una finestra di dialogo o di una finestra popup, la trasmissione del contesto come attività comporterà un errore – EyalBellisha
Come sottolinea @EyalBellisha, questo potrebbe non funzionare sempre. Nel caso di widget di compatibilità a contesto, come nel caso dell'estensione da 'android.support.v *', 'getContext()' non sarà del tipo Activity. Per AppCompatButton, ad esempio, è di tipo TintContextWrapper e non può essere lanciato su Activity. –