2012-07-18 18 views
7

Ho problemi con l'impostazione del testo in una visualizzazione testuale con formato e più valori.Android setText/R.string/values ​​

holder.car.setText(R.string.mycar + lm.getCarName() + R.string.year + lm.getYear()); 

questo sta dando me "2.143.545 2.143.213 Camero 1977"

ho provato poche altre "soluzioni" dal web

holder.car.setText(getString(R.string.mycar) + lm.getCarName() + getString(R.string.year) + lm.getYear()); << not work, getString undefine>> 

ho anche provato String.valueOf(R.string.mycar); getResources().getText(R.String.mycar), ancora non ha funzionato .

Sarebbe bello se qualcuno mi può aiutare, grazie

+0

cosa significa "ancora non funziona" significa? Cosa ti aspetti? – Blackbelt

+0

È perché 'R.string.mycar' è un' int' che si riferisce a una risorsa. Non è la vera risorsa. La risposta di @ user1417127 sembra buona. Recupera la risorsa stringa effettiva per te. –

+0

usa context.getResources.getString (R.string.xyx). – Kamal

risposta

14

Prova questa

holder.car.setText(getResources().getString(R.string.mycar));

+0

sto ottenendo "falso" per il valore di stringa ... –

+0

cosa intendi ottenere "falso" ??? – user1417127

2

Bisogna recuperare le risorse prima, e la chiamata del getString medthod (int), non getText , hai messo.

Quindi, dovrebbe essere:

getResources().getString(R.String.mycar); 
2

Prova questa. Se stai recupero stringa nella classe senza estendere Activity Prendi usando la vostra speranza Context

holder.car.setText(context.getResources().getString(R.string.mycar)); 

Se stai estendendo Activity

holder.car.setText(yourActivity.this.getResources().getString(R.string.mycar)); 

questo ti aiuta ..

+0

invece di 'context' possiamo scrivere' getActivit() '? ci sono problemi – mehmet

+0

@mehmet dipende dal vostro requisito. Leggi il [documento qui] (http://developer.android.com/reference/android/app/Fragment.html#getActivity()) – Praveenkumar

3

R.string.mycar e R.string.year sono solo ID per risorse. Per questo motivo ottieni i numeri (gli ID sono numerici).

ottenere la stringa di risorse è necessario utilizzare questa costruzione:

String myCar = getResources().getString(R.string.mycar); 

e ora la variabile myCar detiene la stringa si inserisce nel file di strings.xml sotto il nome di MyCar.

il metodo getResources() appartiene a Context. Se si esegue il codice di fuori di un'attività, utilizzare l'istanza contesto per ottenere la stringa, in questo modo:

String myCar = context.getResources().getString(R.string.mycar); 
0

La classe R contiene tipo di puntatori ai vostri le risorse, in modo da non è possibile utilizzare direttamente, uso getResources () .getString(), come altri dicono.

9

Penso che tu stia cercando di utilizzare i parametri nella stringa.

Prova questo:

<string name="mycar">Car: %1$s Year: %2$s</string> 

String mycar = getString(R.string.mycar); 
mycar = String.format(mycar, lm.getCarName(), lm.getYear()); 

si dovrebbe ottenere:

Auto: Camaro Anno: 1977

1

Se si desidera impostare il vostro TextView solo una stringa dalla stringa.file xml,

mytextview.setText(R.String.mycar); 

Se si desidera impostare il vostro TextView con la combinazione di alcune stringhe o interi, (meglio di prima maniera)

int number=5; 

mytextview.setText(getResources().getString(R.String.mycar) + " " +number + " " + getResources().getString(R.String.mysecondcar)); 
+0

funziona per me. Grazie. –