テキスト ビューの行数を知りたい。私はすでにmytextviewテキストを設定しています。次に、mytextviewで何行かかるかを取得したいと思います。
mytextview.getLineCount() を使用しますが、機能しませんでした。常に 0 を返します。
誰か助けてくれませんか。
行数をフェッチするためのメソッドをPOSTする必要があります。これがサンプルコードです
imageCaption.setText("Text Here");
imageCaption.post(new Runnable() {
@Override
public void run() {
int lineCount = imageCaption.getLineCount();
Log.v("LINE_NUMBERS", lineCount+"");
}
});
onCreateOptionsMenu() 内の TextView パラメータを確認できます
@Override
public boolean onCreateOptionsMenu(Menu menu) {
TextView tv1 = (TextView)findViewById(R.id.textView);
Rect rect = new Rect();
int c = tv1.getLineCount();
tv1.getLineBounds(0, rect);
tv1.getLineBounds(1, rect);
return true;
}
以下は、tv.setText() を設定した同じ場所でのテキストビューの行数を提供します。
int maxTextViewWidth="ENTER MAX WIDTH HERE";
tv.setText("hello\nhow are you?");
int widthMeasureSpec = View.MeasureSpec.makeMeasureSpec(maxTextViewWidth, View.MeasureSpec.AT_MOST);
int heightMeasureSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
tv.measure(widthMeasureSpec, heightMeasureSpec);
int lineCount=tv.getLineCount();
public int getLineCount ()
以来: API レベル 1
テキストの行数を返すか、内部レイアウトが構築されていない場合は 0 を返します。
このリンクを確認してください。
Android Edittext: アクティビティの onCreate() で LineCount を取得する
内部レイアウトがまだ作成されていない場合、tv.getLineCount() は常に 0 を返します。
全てに感謝。私はすでにそれを解決しました。このようにスレッドを使用して行数を取得します
@Override
public void run() {
// TODO Auto-generated method stub
while(textView.getLineCount() == 0){
}
countLine = textView.getLineCount();
}
これが同じ問題を抱えている場合に役立つことを願っています。宜しくお願いします。