2012-05-22 27 views
6

Tôi đã chuỗi sau tuyên bố trong strings.xml:tham khảo chuỗi nguồn từ mã

<string name="last_msg">Your last click was on</string> 

Bây giờ khi ai đó nhấp vào một nút, tôi muốn có một TextView để hiển thị chuỗi này, với một không gian, sau đó là một giá trị biến đó là dấu thời gian.

Thật không may, sử dụng @ string/last_msg không hoạt động và tôi không chắc chắn cách thực hiện điều này đúng cách vì vậy tôi không mã hóa nội dung.

Dưới đây là mã của tôi cho hàm onClick:

public void showMsgNow(View view) { 
    TextView lastMsg = (TextView)findViewById(R.id.textView2); 
    long currentTimeStamp = System.currentTimeMillis(); 
    lastMsg.setText(@string/last_msg + " " + currentTimeStamp); 
} 

Tôi là một newbie, bất kỳ trợ giúp sẽ là tuyệt vời!

+0

Tìm kiếm trên google/web trước khi đăng câu hỏi, đây là điều đơn giản u thậm chí có thể tìm hiểu trong tài liệu quá. – AAnkit

Trả lời

10

Tôi tìm thấy câu trả lời trên Google:

getString(R.string.last_msg) 
6
// getString is method of context 
if (this instanceof Context) 
//If you are in Activity or Service class    
lastMsg.setText(getString(R.string.last_msg)+ " " + currentTimeStamp); 
else       
//you need to context to get the string 
    lastMsg.setText(getString(mContext,R.string.last_msg)+ " " + currentTimeStamp); 


    public String getString(Context mContext, int id){ 
    return mContext.getResources().getString(id); 
    } 
+0

vì vậy tôi không cần phải sử dụng chức năng getString ?? – scarhand

+0

khi tôi không sử dụng hàm getString nó chỉ xuất hiện dưới dạng số nguyên chứ không phải chuỗi ... – scarhand

+0

Không cần sử dụng ở đây, trong android R là lớp Tài nguyên, tất cả các tài nguyên được lưu trữ trong thư mục thô đều có id trong R lớp – Sandy09

10

bạn không thể truy cập trực tiếp String bởi @, cho rằng bạn cần phải có tài nguyên bối cảnh và sau đó chỉ cần làm điều này ...

lastMsg.setText(context.getResources().getString(R.string.last_msg) + " " + currentTimeStamp); 

trong trường hợp sử dụng của bạn

<string name="last_msg">Your last click was on %1$s</string> 

thực hiện:

public void showMsgNow(View view) { 
    TextView lastMsg = (TextView)findViewById(R.id.textView2); 
    long currentTimeStamp = System.currentTimeMillis(); 
    lastMsg.setText(context.getResources() 
     .getString(R.string.last_msg, currentTimeStamp)); 
} 
2

sử dụng bên dưới dòng

lastMsg.setText(getString(R.string.last_msg) + " " + currentTimeStamp); 
0

Hãy thử điều này:

lastMsg.setText(R.string.last_msg + " " + new SimpleDateFormat(d-MM-YYYY).format(new Date())); 
Các vấn đề liên quan