我想创建一个填充空白活动。
例如: “天气是(编辑文本在这里)昨天。” “
”男孩们在休息室里玩(编辑文字在这里)。“ “露西昨天在午餐时喝了酒(编辑于此)。”在文本字符串的中间放置编辑文本的最佳方式是什么?
现在我已经设置了它的方式,在编辑文本之前和之后有一个文本视图。问题是文本视图的文本正在通过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