2009-11-03 11 views
100

StringTextViewの幅より長い場合は自動的に次の行に折り返します。 android:singleLine(旧式)を使用するか、android:inputType="text"を設定してこの問題を回避できます。私が今必要とするのは、Stringの最後の3文字を "..."に置き換えたものです。モノスペースフォントを使用していないので、これは私のStringで使用されている文字によって異なります。だから私はTextViewの文字列の最後の3文字を取得し、それらを置き換えるための最良の方法は何ですか?これは一般的な問題であるに違いないので、Androidフレームワークに既に実装されているものがあるかもしれません。Android:TextViewは文字列の最後の3文字を自動的に切り捨てて置換します

答えて

222

あなたはテキストビューの「ellipsize」プロパティを使用することができるはずです:あなたは、あまりにもレイアウトに重力値を適用する必要があり

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

を。私は時にはそれらがないと "自動ストレッチ"ビューを見たことがあります。

+0

1を使用することができます - ユーザーが何をしたい、まさにそれを自分自身 – I82Much

+0

パーフェクトをロールバックすることなく。ありがとう。アンドロイド:singleLine = "true"の代わりにアンドロイド:inputType = "text"を使用していたので、これまでに試してみましたが、うまくいきませんでした(これは廃止予定です)。しかし今、私はアンドロイドに固執するつもりです:singleLine = "true"。 Muchas gracias。 – znq

+30

"..."はまだ追加されません。私にとって、この質問は完全には答えられていません!この回答は、「短いverylongword」を「短く」、「短いverylon」にすることはありません。あなたの意見の上に、推奨されない属性を使用することをお勧めします。 – OneWorld

28

この問題の興味深いワークラウンドを見つけました。

​​

トリックは水平スクロールに関する最後の陳述です。チェックアウトしてください。それは少なくともv2.2で動作します。プログラム的

+7

Android 4.0での作業をやめているようです。 – caw

+0

面白いことに...知っておきたいことです。ヘッドアップのためにマルコに感謝します。 – BonanzaDriver

関連する問題