我尝试将最后一个追加值的焦点放在文本框中。但不幸的是我无法提起它。能帮我解决这个问题。
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="115dp"
android:orientation="vertical" >
<ScrollView android:id="@+id/ScrollView01"
android:layout_width="fill_parent"
android:layout_height="165dp"
android:background="#FFFFFF" >
<TextView
android:id="@+id/tvHistory"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#FFFFFF"
android:gravity="right"
android:focusable="true"
android:text=""
android:textColor="#000000" />
</ScrollView>
滚动视图和追加功能正常。但我想用颜色
来聚焦最后一个追加值tvHistory.append(tvInput.getText()+"\n");
答案 0 :(得分:0)
只使用一个TextView就无法做到这一点,因为单个TextView不能有多种颜色。
您可以考虑执行以下操作:
<ScrollView android:id="@+id/ScrollView01"
android:layout_width="fill_parent"
android:layout_height="165dp"
android:background="#FFFFFF" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/tvHistory"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="#000000" />
<TextView
android:id="@+id/tvHighlight"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="some_other_color" />
</LinearLayout>
</ScrollView>
现在,每次要添加新值时,都会执行以下操作:
tvHistory.append(tvHighlight.getText().toString());
tvHighlight.setText(value);
答案 1 :(得分:0)
在Android中,您可以使用Spannable设置TextView的部分样式。http://developer.android.com/resources/faq/commontasks.html#selectingtext
int len = tvHistory.getText().length();
tvHistory.setText(tvHistory.getText() + tvInput.getText()+"\n", TextView.BufferType.SPANNABLE);
Spannable str = tvHistory.getText();
// Create our span sections, and assign a format to each.
str.setSpan(new BackgroundColorSpan(0xFFFFFF00), len, str.length() - 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);