অ্যান্ড্রয়েড: টেক্সটভিউ স্ট্রিংয়ের সর্বশেষ 3 চরটি স্বয়ংক্রিয়ভাবে কাটা এবং প্রতিস্থাপন করে


131

যদি এর প্রস্থের Stringচেয়ে দীর্ঘ হয় তবে TextViewএটি স্বয়ংক্রিয়ভাবে পরবর্তী লাইনে ontoেকে যায়। আমি এটি ব্যবহার করে android:singleLine(অবহেলিত) বা সেট করে এড়াতে পারি android:inputType="text"। আমার এখন যা দরকার তা হ'ল আমার String" ... " দিয়ে শেষ 3 টি অক্ষর প্রতিস্থাপন করে । যেহেতু আমি কোনও মনোস্পেস ফন্ট ব্যবহার করছি না এটি আমার ব্যবহৃত অক্ষরের উপর নির্ভর করে সর্বদা আলাদা হবে String। সুতরাং আমি ভাবছি যে কোনও স্ট্রিংয়ের সর্বশেষ 3 টি অক্ষর একটিতে পেয়ে TextViewএবং সেগুলি প্রতিস্থাপনের সবচেয়ে ভাল উপায় । অ্যান্ড্রয়েড কাঠামোতে ইতিমধ্যে কিছু কার্যকর করা হয়েছে, কারণ এটি অবশ্যই একটি সাধারণ সমস্যা।

উত্তর:


290

আপনি একটি পাঠ্য দর্শনটির "উপবৃত্তাকার" বৈশিষ্ট্যটি ব্যবহার করতে সক্ষম হবেন:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/text_mytext"
    android:ellipsize="end"
    android:maxLines="1"
/>

আপনার লেআউটেও মাধ্যাকর্ষণ মান প্রয়োগ করতে হবে; আমি তাদের মাঝে মাঝে "অটো-স্ট্রেচিং" ভিউ দেখেছি।


পারফেক্ট। ধন্যবাদ। আমি এর আগে চেষ্টা করেছি, তবে কাজ করিনি, কারণ আমি অ্যান্ড্রয়েড: ইনপুটটাইপ = "পাঠ্য" অ্যান্ড্রয়েডের পরিবর্তে ব্যবহার করেছি: সিঙ্গললাইন = "সত্য" (যা অবমূল্যায়ন বলে মনে করা হয়)। তবে এখন আমি অ্যান্ড্রয়েডের সাথে লেগে যাচ্ছি: সিঙ্গললাইন = "সত্য"। মুচাস গ্রাসিয়াস।
znq

44
এটি এখনও "..." যুক্ত করে না। আমার জন্য, এই প্রশ্নের পুরো উত্তর দেওয়া হয় না! এই উত্তরটি "সংক্ষিপ্ত খুব দীর্ঘমেয়াদী "টিকে" শর্ট "এবং" শর্ট ভেরলন ... "না করে তুলবে যে এর উপরে আপনি ছেলেরা হ্রাস করা গুণাবলী ব্যবহার করার পরামর্শ দিচ্ছেন।
ওয়ানওয়ার্ল্ড

7
দুর্দান্ত কাজ করে, তবে সিঙ্গললাইন হ্রাস করা হয় সুতরাং এর পরিবর্তে আপনাকে অবশ্যই ম্যাক্সলাইন = "1" ব্যবহার করতে হবে। পার্শ্ব নোট, উপবৃত্তাকার পাশাপাশি একাধিক লাইনের সাথে কাজ করে!
টরে ল্যাসলি

4
সিঙ্গললাইন হ্রাস করা হয়। ম্যাক্সলাইনস = "1" ব্যবহার করুন। পুরানো উত্তরের জন্য কেবল একটি মন্তব্য
ইওকস

1
ম্যাক্সলাইন = 1 মাঝখানে পাঠ্যদর্শনটি কেটে দেবে। সিঙ্গললাইন = সত্য প্রত্যাশা অনুযায়ী কাজ করে।
সাপ 11

33

এই সমস্যার জন্য একটি আকর্ষণীয় কাজ খুঁজে পেয়েছে।

maxLines=1
ellipsize=end
scrollHorizontally=true

কৌশলটি অনুভূমিক স্ক্রোলিং সম্পর্কিত সর্বশেষ বিবৃতিটি .... এটি পরীক্ষা করে দেখুন। এটি কমপক্ষে v2.2 এ কাজ করে।


আকর্ষণীয় ... জেনে রাখা ভাল। মাথা উঁচু করার জন্য মার্কো ধন্যবাদ।
বনানডাড্রাইভার

4

প্রোগ্রামগতভাবে, আপনি ব্যবহার করতে পারেন:

TextView tx = new TextView(this);
tx.setTextSize(13);
tx.setGravity(Gravity.CENTER);
tx.setTop(90);
tx.setText("Long text here");
tx.setTextColor(Color.BLACK);
tx.setSingleLine(true);
tx.setEllipsize(TruncateAt.END);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.