2012-04-11 3 views
1

Ich habe eine String erklären:Anfahrt und String-Ressourcen-Werte in android

<string name="Please">Please Select</string> 

im res/values/Strings.xml. Jetzt möchte ich diesen String Wert zuzugreifen, aber was kann ich kann bis id nicht bekommen gehen schätzen wie:

int i = findViewById(R.string.Please); 

Aber was ich will nur den Wert der Zeichenfolge Please ist.

Vielen Dank für Ihre Antwort, aber mein Problem ist ein wenig größer

Was wollte ich nur tun, ist das Datum anzuzeigen mit app_name

aus allen Antworten, die ich den app_name String bekommen aber ob ich kann diese app_name mit dem aktuellen Datum

<string name="app_name">My app</string> 

gesetzt und ich bin auch mein auf diese Weise eingestellt

My app(in Left alignment)    Date (in right aligment) 

und auch beim Start der ersten Aktivität möchte ich app_name und nicht bei jeder Aktivität festlegen;

ich denke, es arbeiten kann mich

setResource().setString(R.string.Please); 

aber kein setResource() -Methode leider versuchen lassen.

+0

Sie eine Antwort akzeptieren kann unten, ob es geholfen du mich – dhaval

+1

erhalten lassen antwort was ich will ich werde es tun ist kein problem – Trikaldarshi

+0

'kann gehen bis id nicht wert wie' was? – Michael

Antwort

6

Sie setzen kippe eine Zeichenfolge, seine statische und kann nicht zur Laufzeit geändert werden, was Sie wollen, ist zu tun, so etwas wie dieses

 Calendar cal = Calendar.getInstance(); 
     String date = cal.get(Calendar.DAY_OF_MONTH) + "/" + cal.get(Calendar.MONTH) + "/" + cal.get(Calendar.YEAR); 
     setTitle(date); 

Ihr Versuch, den Titel als Datum einzustellen Recht?

zwei Titel zu haben, es ein bisschen schwieriger ist, müssen Sie zunächst ein Layout, rufen Sie diese custom_title_1

Dies ist der XML-Code für das Layout

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/screen" 
    android:layout_width="match_parent" android:layout_height="match_parent" 
    android:orientation="vertical"> 
    <TextView android:id="@+id/left_text" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:text="@string/custom_title_left" /> 
    <TextView android:id="@+id/right_text" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:text="@string/custom_title_right" /> 
</RelativeLayout> 

in Ihrem Code dann bevor Sie den Anruf UI müssen Sie dies nennen:

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); 

Sie dann Inhalt Ansicht verwenden

dann dieser Anruf, der den Titel gesetzt wird:

getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title_1); 

Jetzt können Sie die beiden Textviews finden und stellen Sie den Text:

TextView leftText = (TextView) findViewById(R.id.left_text); 
TextView rightText = (TextView) findViewById(R.id.right_text); 

Calendar cal = Calendar.getInstance(); 
String date = cal.get(Calendar.DAY_OF_MONTH) + "/" + cal.get(Calendar.MONTH) + "/" + cal.get(Calendar.YEAR); 
String app_name = getString(R.string.app_name); 
leftText.setText(app_name); 
rightText.setText(date); 
+0

Sie haben sich geirrt Das habe ich wirklich gemocht, aber was ich eigentlich wollte die Strings in strings.xml unter res/strings/ dort haben Sie string app_name gefunden, was ich dies von meinem Code setzen wollte don ' t eile ganze Frage lesen – Trikaldarshi

+1

Hast du den Rest davon gesehen? Ich glaube nicht, dass ich etwas falsch gemacht habe? – FabianCook

+0

weiter bearbeiten Antwort – Trikaldarshi

0

Die String-Ressourcen sind keine Ansichten. eine String-Ressource verwenden Sie

diese
@string/Please 
+1

Fragen richtig gelesen – FabianCook

9

Versuchen Sie, wie dieses

String temp = getResources().getString(R.string.Please); 
1
String str = getResources().getString(R.string.Please); 
2

Versuchen Sie tun würde.

String value = getResources().getString(R.string.Please);