我试图在屏幕旋转时保留 TextView 的文本。以下是我的代码 fragment 。
SampleActivity.java
public class SampleActivity extends AppCompatActivity {
private static TextView mIntView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sample_layout.xml);
mIntView = (TextView) findViewById(R.id.int_view);
if (savedInstanceState == null) {
mIntView.setText(String.valueOf(1));
}
Log.d("Test", mIntView.getText().toString());
}
}
sample_layout.xml
<TextView
android:id="@+id/int_view"
android:background="@drawable/circle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top|center"
android:layout_marginRight="20dp"
android:gravity="center_vertical|center_horizontal"
android:textSize="25sp"
android:clickable="true"
android:textColor="@color/blue"
android:freezesText="true"/>
android:freezesText="true"属性应该保留 TextView 的状态。但是当我旋转屏幕时,整数“1”仍然从 TextView 中消失。我在这里做错了什么吗?
最佳答案
您可以重写 onSaveInstanceState 方法并输入要保存的所有值。在 onRestoreIntanceState 方法中将它们取回。
节省值(value):
@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putString(KEY, VALUE);
}
恢复值(value):
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
if(savedInstanceState != null){
String mString = savedInstanceState.getString(KEY);
yourTextview.setText(mString);
}
}
关于java - 使用android恢复TextView的文本:freezestext not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31804659/