অ্যান্ড্রয়েডের টেক্সটভিউতে কীভাবে আমি একটি নতুন লাইন যুক্ত করব?


253

আমি যখন একটি TextViewইন সংজ্ঞায়িত xmlকরি, আমি কীভাবে এটিতে একটি নতুন লাইন যুক্ত করব? \nকাজ না বলে মনে হচ্ছে।

<TextView
   android:id="@+id/txtTitlevalue"
   android:text="Line1: \n-Line2\n-Line3"
   android:layout_width="54dip"
   android:layout_height="fill_parent"
   android:textSize="11px" />

1
আপনার কোড আমার জন্য কাজ করে। মাল্টিলাইন পাঠ্যের পরিবর্তে আপনি কী পাবেন?
molnarm

2
ভিজ্যুয়াল
এডিটরটিতে

উত্তর:


293

ভিজ্যুয়াল সম্পাদককে বিশ্বাস করবেন না। আপনার কোড ইমুতে কাজ করে।


ভাল, আমার ক্ষেত্রে, ভিজ্যুয়াল সম্পাদক সত্য বলছিলেন। এটি ব্যাকস্ল্যাশ প্রদর্শন করতে অন্য একটি ব্যাকস্ল্যাশ যুক্ত করছিল। সঠিক উপায়টি xML ফাইলের অভ্যন্তরে পাঠ্যটি প্রবেশ করানো হয়েছিল।
dp2050

79

চেষ্টা করুন:

android:lines="2"

\n কাজ করা উচিত.


1
আমার পাঠ্যদর্শনটি 2 লাইনের বেশি হতে পারে। এটি একটি নিয়ন্ত্রণ। এটি ঠিক যে কোনও বিষয়ে হতে পারে।
ড্রপসফিউজপিটার


38

আমি মনে করি এটির আপনার HTM.fromHtml(subTitle)কলটির সাথে কিছু করার আছে : একটি "\ n" এর অর্থ এই নয় যে এইচটিএমএল থেকে বুপকিস। <br/>"\ N" এর পরিবর্তে চেষ্টা করুন ।


25
@androidevAlex এর কারণ এটি <br/>, <
ইলিয়া কোগান

21

প্রথমে এটি আপনার পাঠ্যদর্শনটিতে রাখুন:

android:maxLines="10"

তারপরে \nআপনার পাঠ্যদর্শনটির পাঠ্যে ব্যবহার করুন ।

ম্যাক্সলাইনগুলি টেক্সটভিউকে সর্বাধিক এই বহু লাইন লম্বা করে তোলে। আপনি অন্য নম্বর চয়ন করতে পারেন :)


19

উপরের সমস্তগুলি চেষ্টা করে দেখেছি, নিজস্ব কিছু গবেষণা করেছি যার ফলে লাইন ফিডের অব্যাহতি অক্ষর রেন্ডারিংয়ের জন্য নিম্নলিখিত সমাধানের ফলস্বরূপ:

string = string.replace("\\\n", System.getProperty("line.separator"));
  1. প্রতিস্থাপন পদ্ধতিটি ব্যবহার করে আপনাকে পালানো লাইনফিডগুলি ফিল্টার করতে হবে (উদাঃ '\\\n')

  2. তারপরেই লাইন ফিডের '\n'পালানোর অক্ষরের প্রতিটি উদাহরণ আসল লাইনফিডে রেন্ডার হয়ে যায়

এই উদাহরণের জন্য আমি জেএসওএন ফর্ম্যাটেড ডেটা সহ একটি গুগল অ্যাপস স্ক্রিপ্টিং নোএসকিউএল ডাটাবেস (স্ক্রিপ্টডিবি) ব্যবহার করেছি।

চিয়ার্স: ডি


1
এটি আমার পক্ষে কাজ করেছে: প্রতিস্থাপন করুন ("\\ n", System.getProperty ("line.separator"));
স্লট

বরং, স্ট্রিং = স্ট্রিং.রেপসএল ("\\\ n", System.getProperty ("line.separator"));
ব্যবহারকারী 846316

10
<TextView
   android:id="@+id/txtTitlevalue"
   android:text="Line1: \r\n-Line2\r\n-Line3"
   android:layout_width="54dip"
   android:layout_height="fill_parent"
   android:textSize="11px" />

আমি মনে করি এটি কার্যকর হবে।


8

আমার 2 সেন্ট, অ্যান্ড্রয়েড টিভি ব্যবহার করে।

\nপড়ার সময় এক্সএমএল স্ট্রিংগুলিতে যুক্ত করুন :

public void setSubtitle(String subtitle) {
    this.subtitle = subtitle.replace("\\n", System.getProperty("line.separator"));
}

8

আমি কেবল একই সমস্যাটি সমাধান করি, এক্সএমএল এর নীচে বৈশিষ্ট্যগুলি রেখেছি

android:lines="2" android:maxLines="4" android:singleLine="false"

হবে। Html.fromHtml("text1 <br> text2").toString()কাজ।


এটি এখনও প্রাসঙ্গিক, ধন্যবাদ! আমার ম্যাক্সলাইন ছিল, তবে আমার সিঙ্গললাইন = মিথ্যা ছিল না।
বিস্ফোরণ_হর্তাচিজ

এটি আমার কাছ থেকে কাজ করা একমাত্র সমাধান। ধন্যবাদ!
সিলাস

8

এটি কাজ করার জন্য আপনার \nমধ্যে রয়েছে "\n"তা নিশ্চিত করুন ।


7

এটি আমার সমস্যার সমাধান করেছে।

stringVar.replaceAll("\\\\n", "\\\n");


5

এটি করার একটি উপায় হ'ল Htmlট্যাগগুলি ব্যবহার করা ::

txtTitlevalue.setText(Html.fromHtml("Line1"+"<br>"+"Line2" + " <br>"+"Line3"));

5

আপনি যদি ডিবাগ করেন তবে আপনি দেখতে পাবেন যে স্ট্রিংটি আসলে "\ \r\ \n"বা "\ \n"অর্থাত্ এটি পালিয়ে গেছে। সুতরাং অতিরিক্ত থেকে মুক্তি পেতে আপনি যদি সেই স্ট্রিংটি ম্যাসেজ করেন তবে \আপনার সমাধান হবে। এটি সত্য, বিশেষত যদি আপনি কোনও ডাটাবেস থেকে পড়েন।


5

আপনি করা প্রয়োজন "\n"মধ্যে strings.xmlমধ্যে না পৃষ্ঠার লেআউট ফাইল।


এটি আমার পক্ষে কাজ করেছে, যেখানে ভিজ্যুয়াল এডিটর অতিরিক্ত ব্যাকস্ল্যাশগুলি যোগ করে ব্যাকস্ল্যাশটি to n
dp2050

4

রাখা দরকার

1।android:maxLines="no of lines"

২. \nএবং পরবর্তী লাইনগুলি পাওয়ার জন্য ব্যবহার করুন


4

আমার জন্য সমাধানটি লেআউটে নিম্নলিখিত লাইনটি যুক্ত করা ছিল:

<LinearLayout
    xmlns:tools="http://schemas.android.com/tools"
    ...
    >

এবং \ n ভিজ্যুয়াল এডিটরটিতে একটি নতুন লাইন হিসাবে দেখায়। আশা করি এটা সাহায্য করবে!


1
আমি নিশ্চিত না যে এটি প্রশ্নের সাথে সম্পর্কিত কিনা :)
সুলায়মান

আমার একই সমস্যা ছিল যে নতুন লাইনের পরিবর্তে "\ n" স্ট্রিংটি নিজেই প্রদর্শিত হয়েছিল। আমি যখন উপরের লাইনটি যুক্ত করলাম তখন কেসটি চাইবে না এবং নতুন লাইনটি প্রদর্শিত হবে
রব

1
সম্ভবত এটি কারণ আপনি ব্যবহার করছেন tools:textএবং android:textওপি পছন্দ করে না , তবে ঝামেলার জন্য যাইহোক দুঃখিত :)
সুলেমান

আমি মনে করি আমার এটি আরও ভাল করে স্পষ্ট করা উচিত ছিল, আপনার মন্তব্যের জন্য আমি এখনই করেছি :) আমি ব্যবহার android:textকরি আমি মনে করি এটি কেবলমাত্র ভিজ্যুয়াল সম্পাদকের একটি বাগ, গ্রহণযোগ্য উত্তরের পরামর্শ অনুসারে তবে এটি দেখতে সক্ষম হওয়া আরও আরামদায়ক :)
রব

হ্যাঁ, আমি এখন বুঝতে পেরেছি, আপনি ঠিক বলেছেন এটি আরও স্বাচ্ছন্দ্যযুক্ত :) ধন্যবাদ
সুলেমান

4

এছাড়াও আপনি এর &lt;br&gt;পরিবর্তে যোগ করতে পারেন \n.

এবং তারপরে আপনি টেক্সটভিউতে পাঠ্য যুক্ত করতে পারেন:

articleTextView.setText(Html.fromHtml(textForTextView));

এক্সএমএলে নেই আপনি পারবেন না। এটি একটি সংকলন ত্রুটি দেয় - android:text<বা> অক্ষর থাকতে পারে না।
টিএমএমএম

3

আপনাকে \nফাইলটি লাগাতে হবেstring.xml

<string name="strtextparkcar">press Park my Car to store location \n</string>

2
 android:text="Previous Line &#10; Next Line" 

এটি কাজ করবে।


না, তা হয় না।
shazbot

<টেক্সটভিউ অ্যান্ড্রয়েড: লেআউট_উইথ = "ম্যাচ_প্যারেন্ট" অ্যান্ড্রয়েড: লেআউট_হাইট = "র‌্যাপ_কন্টেন্ট" অ্যান্ড্রয়েড: সিঙ্গললাইন = "ভুয়া" অ্যান্ড্রয়েড: টেক্সট = "পূর্ববর্তী লাইন & # 10; নতুন লাইন" /> এটি কাজ করতে আপনাকে এমুলেটরটিতে চালনা করতে হবে। ধন্যবাদ
ভাইরাল পরমার

2

ঠিক করার চেষ্টা করুন:

Textview_name.settext("something \n  new line "):

জাভা ফাইলে।


3
দয়া করে প্রশ্নের যথাযথ উত্তর সরবরাহ করুন, অন্যথায় মন্তব্য ব্যবহার করুন
ডিজেএসএইচ

1

RuDrA05 এর উত্তরটি ভাল, আমি যখন গ্রহনে XML সম্পাদনা করি তখন এটি কাজ করে না, তবে আমি যখন নোটপ্যাড ++ দিয়ে এক্সএমএল সম্পাদনা করি তখন এটি কাজ করে।

আমি যদি ग्रहण বা নোটপ্যাড ++ দিয়ে সংরক্ষণ করা কোনও টেক্সট ফাইলটি পড়ি তবে একই জিনিস ঘটছে

হতে পারে এনকোডিং সম্পর্কিত।


1

এটি কাজ করে। আপনার অ্যাপ্লিকেশন জন্য এটি পরীক্ষা করুন।

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Text 1\nText 2\nText 3"/>

1

পার্শ্ব নোট: পাঠ্যকে বড় করে ব্যবহার করে

android:inputType="textCapCharacters"

বা অনুরূপ \nকাজ করা থেকে বিরত বলে মনে হচ্ছে ।


1

আপনি ব্যবহার করছেন your_package.R এবং না তা নিশ্চিত করুনandroid.R



0

টেক্সটভিউতে নতুন লাইনের জন্য এটি ঠিক আপনার পাঠ্যের মাঝখানে \ n যুক্ত করুন ..


তবে উত্তর "আপনার" প্রশ্ন নয় বরং প্রশ্নটির লিঙ্কের সাথে সম্পর্কিত ...
নিখিল বোরাড

ওএমজি..আমি দুঃখিত আমার দ্বারা বিভ্রান্ত। দয়া করে আপনার উত্তরটি সম্পাদনা করুন..আমি আমার ভোটকে ইতিবাচকভাবে পরিবর্তন করব।
রঞ্জিত কুমার

1
আরে প্রথমে আপনার উত্তরটি সম্পাদনা করুন। অন্যথায় আমি আমার ভোট পরিবর্তন করতে পারি না।
রঞ্জিত কুমার

0

যদি টেক্সটভিউ কোনও android:orientation="vertical"লেআউটে থাকে (উদাহরণস্বরূপ লিনিয়ারলআউট), লেআর্ট হিসাবে ওরিয়েন্টেশন অ্যাট্রিবিউটটিকে উল্লম্বভাবে পরিবর্তন করার বা তার পরে একটি নতুন লাইন তৈরি করার জন্য TextViewবৈশিষ্ট্যটি পরিবর্তন করার android:singleLine="true"চেষ্টা করুন।


0

কর্মসূচী: myTV.setText ("আমার পাঠ্য" + "\ n" + মাইস্ট্রিং);


0

আপনার স্টিংস.এক্সএমএলে একটি স্ট্রিং তৈরি করুন

<resources>
    ...
    <string name="new_line">\u000A</string>
</resources>

তারপরে আপনার কোডের রেফারিং স্ট্রিং

val linkString = "This is in the first line.${getString(R.string.new_line)}This is on the second line."
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.