How to get and set string Resource values in andro

2020-07-22 09:38发布

I've declare a String:

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

in the res/values/Strings.xml. Now I want to access this String value but what I can get can go till id not value like:

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

But what I want is just the value of the string Please.

Thanks for all of your answer but my problem is a little bigger

What I wanted to do is just to display date with app_name

from all your answers i can get the app_name String but whether I can set This app_name with current date

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

and also I'm to set my in this way

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

and also on start of first activity i want to set app_name and not on every activity;

I think it may work let me try

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

but no setResource() method sorry.

5条回答
淡お忘
2楼-- · 2020-07-22 09:53
 String str = getResources().getString(R.string.Please);
查看更多
▲ chillily
3楼-- · 2020-07-22 09:57

Try like this

String temp = getResources().getString(R.string.Please);
查看更多
▲ chillily
4楼-- · 2020-07-22 09:58

Try this.

String value = getResources().getString(R.string.Please);
查看更多
趁早两清
5楼-- · 2020-07-22 10:09

You cant set a string, its static, and cant be changed at run-time, what you want to do is something like this

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

Your trying to set the title as the date right?

To have two titles it is a bit harder, first you need a layout, call this custom_title_1

This is the xml code for that 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>

Then in your code before you call the UI you need to call this:

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

then set you content view

then call this which will set the title:

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

Now you can find the two textViews and set the 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);
查看更多
冷血范
6楼-- · 2020-07-22 10:12

String resources are not views. To use a string resource you would do

@string/Please
查看更多
登录 后发表回答