java - 使用android恢复TextView的文本:freezestext not working

标签 java android

我试图在屏幕旋转时保留 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/

相关文章:

java - 一个mapreduce代码的优化(reduce side join)

java - 确保不调用特定方法的自定义 lint 规则

Android:mp4 H.264 - 不支持基带

android - 下拉 ListView 时显示 TextView

android - 在扩展 BroadcastReceiver 的类中使用上下文

java - Java 中的 TokuMX MVCC 事务

java - Main 如何访问类?

java - 开始新 Activity 时如何修复连续的 logcat 消息?

java.lang.IllegalArgumentException : provider=network

java - 使用 Volley 库访问 JSON 数组的嵌套项目