So che è possibile fare riferimento a risorse a disposizione per la loro ID di risorsa:DataBinding: come ottenere la risorsa dall'id dinamico?
android:text="@{@string/resourceName}"
Tuttavia, vorrei fare riferimento risorsa da id che è noto solo in fase di esecuzione. Come semplice esempio, immaginare che abbiamo tale modello:
public class MyPOJO {
public final int resourceId = R.string.helloWorld;
}
E ora ho bisogno di usare questo valore come un valore in una stringa di formato. Chiamiamolo
<string name"myFormatString">Value is: %s</string>
L'approccio più diretto non funziona:
android:text="@{@string/myFormatString(myPojo.resourceId)}
Questo valore intero sarà solo mettere in segnaposto (anche prova che ho inizializzato correttamente il mio POJO, quindi non sto fornendo intero layout qui).
Ho anche provato a utilizzare @BindingConversion
, ma non ha funzionato (che è effettivamente previsto, ma ho provato comunque) - int
è stato ancora assegnato al segnaposto e il metodo di collegamento non è stato chiamato.
Come posso ottenere esplicitamente una risorsa dal suo id nella libreria DataBinding?
non ho modo di provare in questo momento, quindi solo per confermare - sarà inserire il stringa per dato resourceId o id stesso come 'int'? –
Restituisce il resourceId – Robust