2014-02-18 43 views
0

我试过了我能找到的每个解决方案,而且没有任何运气。我有多个动态文本视图,不仅可以改变文本,还可以格式化为alpha,透视...我找不到通过屏幕旋转保存此信息的可靠方法。我自学和新的我的头在旋转......TextViews在旋转过程中丢失

public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    if (savedInstanceState == null) { 
     getFragmentManager().beginTransaction() 
       .add(R.id.container, new UIrFragment()) 
       .commit(); 
    } 
} 

}

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.fragment_main, container, false); 
    setRetainInstance(true); 
    Log.i(Tag, "onCreateView"); 
    return rootView; 
} 


@Override 
public void onViewCreated(View view, Bundle savedInstanceState) { 

     ImageView background = (ImageView) getView().findViewById(R.id.background); 
     background.setImageResource(R.drawable.starrynightblurry); 
     setupKeyBoard(); // multiple textViews get set up here. Want to save this 
     setupGame();// same here 

    } 
+0

随着你的意思是从纵向改为横向屏幕方向旋转屏? – donfuxx

+0

是的。屏幕方向更改。 –

回答

0

显然,当使用setRetainInstance(true)时,onRestoreInstanceState的Bundle为null。在

@Override 
public void onSaveInstanceState(Bundle outState) 
{ 
    super.onSaveInstanceState(outState); 
    //store here 
} 

存储文本的观点从这里

@Override 
public void onRestoreInstanceState(Bundle savedInstanceState) 
{ 
    super.onRestoreInstanceState(savedInstanceState);   
    // restore here 
} 

希望恢复文本视图这可以帮助你

+0

onRestoreInstanceState在片段内不起作用。 –

0

添加以下行activity_main.xml中

<activity android:name=".MainActivity" 
android:configChanges="keyboardHidden|orientation" > 
+0

如果我这样做,我的景观布局将不会被使用? –

+0

风景布局不会被使用?? –

+0

我认为这会阻止屏幕旋转。它没有,但它也没有保存我的textViews的状态。 –

0

要么修复屏幕方向要么风景或肖像在您的AndroidManifest.xml像这样:

android:screenOrientation="portrait" 

或处理configChanges这样的:

android:configChanges="orientation|keyboardHidden|smallestScreenSize|uiMode" 

应添加为在清单中的<activity>标签的属性。 configChanges用于指定活动将自行处理的配置更改。

编辑:用于处理碎片中的配置更改,请参阅this question

+0

我想旋转,所以第一个选项不好。我尝试了第二个,但textViews仍然重置。 –

+0

真的吗?你确定你已经将它添加到正确的活动?也许也是干净的项目。 – donfuxx

+0

我复制了该代码,并直接放在

相关问题