2012-05-22 16 views
6

से मैं निम्न स्ट्रिंग strings.xml में घोषणा की है:संदर्भ स्ट्रिंग संसाधन कोड

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

अब जब कोई व्यक्ति एक बटन क्लिक करता है, मैं एक TextView इस स्ट्रिंग दिखाना चाहते हैं, एक स्थान के साथ, तो एक चर मूल्य वह एक टाइमस्टैम्प है।

दुर्भाग्यवश, @ string/last_msg का उपयोग नहीं कर रहा है, और मुझे यकीन नहीं है कि यह ठीक से कैसे करें ताकि मैं सामग्री में हार्डकोडिंग न कर सकूं।

यहाँ onClick समारोह के लिए अपने कोड है:

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

मैं एक नौसिखिया हूँ, किसी भी मदद बहुत अच्छा होगा!

+0

सवाल पोस्टिंग से पहले गूगल/वेब पर खोजें, इस यू भी में पता कर सकते हैं सरल बात है दस्तावेज़ भी। – AAnkit

उत्तर

10

मैं गूगल पर जवाब मिला: @ द्वारा सीधे

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

तो मुझे getString फ़ंक्शन का उपयोग करने की आवश्यकता नहीं है ?? – scarhand

+0

जब मैं getString फ़ंक्शन का उपयोग नहीं करता हूं तो यह केवल एक पूर्णांक के रूप में आता है और स्ट्रिंग नहीं ... – scarhand

+0

एंड्रॉइड आर में संसाधन का उपयोग करने की कोई आवश्यकता नहीं है, कच्चे फ़ोल्डर में संग्रहीत सभी संसाधनों में आर कक्षा – Sandy09

10

आप नहीं कर सकते पहुँच String, उसके लिए आपको संदर्भ संसाधन की आवश्यकता है और फिर बस यह करने के ...

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

आपके मामले में

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

कार्यान्वयन:

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

रेखा से नीचे उपयोग

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

इस प्रयास करें:

lastMsg.setText(R.string.last_msg + " " + new SimpleDateFormat(d-MM-YYYY).format(new Date())); 
संबंधित मुद्दे