我想創建一個填充空白活動。
例如: 「天氣是(編輯文本在這裏)昨天。」 「
」男孩們在休息室裏玩(編輯文字在這裏)。「 「露西昨天在午餐時喝了酒(編輯於此)。」在文本字符串的中間放置編輯文本的最佳方式是什麼?
現在我已經設置了它的方式,在編輯文本之前和之後有一個文本視圖。問題是文本視圖的文本正在通過putStringExtra方法從意圖發送來設置。我永遠不知道這兩種觀點的文本會持續多久。如果文本太長,則第二個視圖的文本會在最後聚集起來。也就是說,文本會在第二個文本視圖中進行換行。我想要實現的是將文本環繞整個屏幕。目前,我正在檢查第二個文本視圖的行數。如果不止一個,那麼我將該文本放置在第一個佈局下的佈局的textview中。似乎有一個更簡單的方法來做到這一點。這裏是我的代碼,感謝您的幫助:
public void setText(double w, double t) {
final double HalfScreenWidth = w;
final double totalScreenWidth = t;
TextView1.setText(getIntent().getExtras().getString("SentPart1"));
TextView2.setText(getIntent().getExtras().getString("SentPart2"));
TextView3.setText("");
TextView1.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
tVWidth = TextView1.getMeasuredWidth();
if (totalScreenWidth > 1100) {
linLay1.removeAllViews();
linLay2.removeAllViews();
linLay1.addView(TextView1);
linLay1.addView(EditText);
linLay1.addView(TextView2);
linLay1.addView(TextView3);
} else if (tVWidth > HalfscreenWidth && totalScreenWidth < 1100) {
linLay1.removeAllViews();
linLay2.removeAllViews();
linLay1.addView(TextView1);
linLay1.addView(EditText);
linLay2.addView(TextView2);
} else if (tVWidth < HalfScreenWidth && totalScreenWidth < 1100) {
linLay1.removeAllViews();
linLay2.removeAllViews();
linLay1.setVisibility(View.INVISIBLE);
linLay2.setVisibility(View.INVISIBLE);
linLay1.addView(TextView1);
linLay1.addView(EditText);
linLay1.addView(TextView2);
linLay2.addView(TextView3);
h.postDelayed(r, 100);
}
}
final Runnable r = new Runnable() {
public void run() {
int lineCount = TextView2.getLineCount();
if (lineCount == 1) {
linLay2.removeView(TextView3);
linLay1.addView(TextView3);
} else if (lineCount == 2) {
int lineStart0 = TextView2.getLayout().getLineStart(0);
int lineEnd0 = TextView2.getLayout().getLineEnd(0);
int lineStart = TextView2.getLayout().getLineStart(1);
int lineEnd = TextView2.getLayout().getLineEnd(1);
CharSequence extraText0 = TextView2.getText().subSequence(
lineStart0, lineEnd0);
CharSequence extraText = TextView2.getText().subSequence(lineStart,
lineEnd);
TextView2.setText(extraText0);
TextView3.setText(extraText);
} else if (lineCount == 3) {
int lineStart0 = TextView2.getLayout().getLineStart(0);
int lineEnd0 = TextView2.getLayout().getLineEnd(0);
int lineStart1 = TextView2.getLayout().getLineStart(1);
int lineEnd1 = TextView2.getLayout().getLineEnd(1);
int lineStart2 = TextView2.getLayout().getLineStart(2);
int lineEnd2 = TextView2.getLayout().getLineEnd(2);
CharSequence extraText0 = TextView2.getText().subSequence(
lineStart0, lineEnd0);
CharSequence extraText1 = TextView2.getText().subSequence(
lineStart1, lineEnd1);
CharSequence extraText2 = TextView2.getText().subSequence(
lineStart2, lineEnd2);
CharSequence oneTwo = TextUtils.concat(extraText1, extraText2);
TextView2.setText(extraText0);
TextView3.setText(oneTwo);
} else if (lineCount == 4) {
int lineStart0 = TextView2.getLayout().getLineStart(0);
int lineEnd0 = TextView2.getLayout().getLineEnd(0);
int lineStart1 = TextView2.getLayout().getLineStart(1);
int lineEnd1 = TextView2.getLayout().getLineEnd(1);
int lineStart2 = TextView2.getLayout().getLineStart(2);
int lineEnd2 = TextView2.getLayout().getLineEnd(2);
int lineStart3 = TextView2.getLayout().getLineStart(3);
int lineEnd3 = TextView2.getLayout().getLineEnd(3);
CharSequence extraText0 = TextView2.getText().subSequence(
lineStart0, lineEnd0);
CharSequence extraText1 = TextView2.getText().subSequence(
lineStart1, lineEnd1);
CharSequence extraText2 = TextView2.getText().subSequence(
lineStart2, lineEnd2);
CharSequence extraText3 = TextView2.getText().subSequence(
lineStart3, lineEnd3);
CharSequence oneTwo = TextUtils.concat(extraText1, extraText2,
extraText3);
TextView2.setText(extraText0);
TextView3.setText(oneTwo);
}
linLay1.setVisibility(View.VISIBLE);
linLay2.setVisibility(View.VISIBLE);
}
我放在一個可運行的,因爲它看起來像Android這樣的需求,以在屏幕上繪製文本稍稍停頓。
謝謝你,但第二個文本視圖包裹自己周圍...它在編輯文本後聚成一團。我希望文字環繞整個屏幕。 – Steinerla
每次更改文本時,您需要調整「EditText」的大小。使用「TextWatcher」註冊。然後,你可以使用'TextView.getPaint()。measureText'獲得新的文本大小。 –
謝謝你,但TextViews的大小正在改變。另外,在你的javascript中,你將編輯文本轉換爲textview然後設置文本?我希望用戶在文本視圖中輸入文本。但我喜歡textwatcher的想法。我會研究一下。謝謝。 – Steinerla