2011-11-06 11 views
13

मैं अपने हार्डकोडेड स्ट्रिंग्स के लिए अपने एंड्रॉइड प्रोजेक्ट को स्कैन करना चाहता हूं ताकि मैं प्रोजेक्ट को स्थानीयकृत कर सकूं, स्ट्रिंग्स को स्ट्रिंग्स.एक्सएमएल में डाल सकूं। मुझे एक्लिप्स में 'बाहरी स्ट्रिंग्स ...' के लिए एक विकल्प दिखाई देता है लेकिन यह एंड्रॉइड के लिए विशिष्ट नहीं है।एंड्रॉइड: क्या मेरे प्रोजेक्ट में सभी स्ट्रिंग्स खोजने का कोई आसान तरीका है?

मुझे पता है you can refactor individual strings लेकिन मैं एक ही समय में सभी स्ट्रिंग्स को दोबारा प्रतिक्रिया देना चाहता हूं। मेरे पास फाइलों का एक टन है, और मैं मैन्युअल रूप से प्रत्येक के माध्यम से जाने से बचने की कोशिश कर रहा हूं।

उत्तर

12

मैं आपकी परियोजना की मूल निर्देशिका में एक टर्मिनल विंडो (पुटी अगर आप खिड़कियों पर हैं) खोलूंगा। इसके बाद आप निम्नलिखित की तरह कुछ चला सकते हैं:

grep -r --include=*.java '="[^"\r\n]*"' ./* --to look for something like this String test="text";, a string with ="" 
or 
grep -r --include=*.java '"[^"\r\n]*"' ./* -- to look for any string, anything enclosed in "" 
बेशक

अगले भाग वास्तव में strings.xml में स्ट्रिंग्स विकल्प है, जो साथ ही बाहर की पटकथा लिखी जा सकता है, लेकिन अधिक फेरबदल कर सकते हैं।

+0

अभी एकमात्र समाधान की तरह लगता है। –

+3

आप इसे ग्रहण के भीतर से भी कर सकते हैं। खोज-> फ़ाइल चुनें। फिर टेक्स्ट फ़ील्ड में "[^" \ r \ n] * "पेस्ट करें और सुनिश्चित करें कि" नियमित अभिव्यक्ति "की जांच की गई है। खोज परिणाम इस तरह व्यवस्थित हैं। – rplankenhorn

+1

rplankenhorn का सुझाव एंड्रॉइडस्टूडियो में भी अच्छा काम करता है। Cmd + shft + f और "नियमित अभिव्यक्ति" का चयन करें – accordionfolder

-1

मेरा मानना ​​है कि ग्रहण के लिए Google CodePro ऐड-ऑन वहाँ में यह सुविधा है कहीं

+0

वहां कुछ भी नहीं है जिसे मैंने पाया कि इस मुद्दे के साथ मदद – shem

7

मैं इसे स्वयं खोज रहा था। ऐसा करने का एक अच्छा तरीका है: -> स्रोत -

"src" निर्देशिका पर राइट क्लिक करें> बाह्यरूप स्ट्रिंग्स

यह सब गैर बाह्यरूप तार खोजने के लिए और आप उन्हें बाह्यरूप करने देगा।

आशा इस :)

संपादित करने में मदद करेगा: -> निकालें एंड्रॉयड स्ट्रिंग
इस रूप में एंड्रॉयड समान नहीं है। लेकिन यह आपको सभी गैर-बाहरी तारों को खोजने में मदद कर सकता है। फिर, प्रत्येक स्ट्रिंग पर आपको प्रदर्शन करना होगा:
Ctrl + 1 -> एंड्रॉइड -> एंड्रॉइड स्ट्रिंग निकालें।

1

Field[] fields = R.string.class.getDeclaredFields(); // or Field[] fields = R.string.class.getFields(); String str = ""; for (int i =0; i < fields.length; i++) { int resId = getResources().getIdentifier(fields[i].getName(), "string", getPackageName()); str += fields[i].getName() + " = "; if (resId != 0) { str += getResources().getString(resId); } str += "\n"; }

आप "str" ​​चर में अपने मूल्यों के साथ तार के सभी कोड मिल जाएगा।

संबंधित मुद्दे

 संबंधित मुद्दे