আমি নিম্নলিখিত পদ্ধতিতে সেটটেক্সট () ব্যবহার করে পাঠ্য সেট করছি ।
prodNameView.setText("" + name);
prodOriginalPriceView.setText("" + String.format(getString(R.string.string_product_rate_with_ruppe_sign), "" + new BigDecimal(price).setScale(2, RoundingMode.UP)));
সেই প্রথমটিতে সাধারণ ব্যবহার এবং দ্বিতীয়টি বিন্যাসের পাঠ্য সহ পাঠ্য নির্ধারণ করছে।
অ্যান্ড্রয়েড স্টুডিওটি এত আকর্ষণীয়, আমি মেনু ব্যবহার করেছি Analyze -> Code Cleanup
এবং আমার মত দুটি লাইনের উপরে পরামর্শ পেয়েছি।
সেটটেক্সট সহ প্রদর্শিত পাঠ্যকে একত্রিত করবেন না। স্থানধারীদের সাথে রিসোর্স স্ট্রিং ব্যবহার করুন। কম ... (Ctrl + F1)
পাঠ্যদর্শন # সেটটেক্সট কল করার সময় :
- সংখ্যার ফর্ম্যাট করতে নাম্বারে # টুস্ট্রিং () কে কখনও কল করবেন না; এটি ভগ্নাংশ বিভাজক এবং লোকেল-নির্দিষ্ট অঙ্কগুলি সঠিকভাবে পরিচালনা করবে না। পরিবর্তে সঠিক বিন্যাসের স্পেসিফিকেশন (% d বা% f) দিয়ে স্ট্রিং # ফর্ম্যাটটি ব্যবহার করার বিষয়টি বিবেচনা করুন।
- পাঠ্য প্রদর্শনের জন্য একটি স্ট্রিং আক্ষরিক (যেমন "হ্যালো") পাস করবেন না। হার্ডকোডযুক্ত পাঠ্যটি অন্য ভাষায় সঠিকভাবে অনুবাদ করা যায় না। পরিবর্তে অ্যান্ড্রয়েড রিসোর্স স্ট্রিং ব্যবহার বিবেচনা করুন।
- পাঠ্য খণ্ডগুলি সহ্য করে বার্তা তৈরি করবেন না। এই জাতীয় বার্তাগুলি সঠিকভাবে অনুবাদ করা যায় না।
আমি এর জন্য কি করতে পারি? জিনিসটি কী তা বোঝাতে যে কেউ সহায়তা করতে পারে এবং আমার কী করা উচিত?
NPE
যদি name
হয়NULL
name
নয় । NULL
setText()
<string name="string_product_rate_with_ruppe_sign">Something %1$d</string>
এবং আপনার জাভা কোডে আপনি এর মতো কিছু করতে পারেন: prodOriginalPriceView.setText(getString(R.string.string_product_rate_with_ruppe_sign), price);
(আপনি এক্সএমএল ফাইলে ফর্ম্যাট করতে পারেন: [ বিকাশকারী।
String
প্রবেশ করানো উচিতsetText()
। প্রাক্তন:setText(name)
স্থিরsetText("" + name)
। কারণ আপনি যদি পাঠ্যকে একত্রীকরণ করেন তবে এটি হার্ডকোডযুক্ত পাঠ্যটিকে বার্তাটি বিজ্ঞপ্তি হিসাবে ব্যবহার করার মতো অনুবাদ করা হবে না