2011-10-06 54 views
0

问题是,当屏幕更改方向时,textview背景颜色消失。 这里是TextView的定义:Android在屏幕旋转时保存TextView背景颜色

<TextView 
    android:id="@+id/nomResult" 
    android:layout_width="fill_parent" 
    android:layout_height="80sp" 
    android:text="Nom result" 
    android:layout_below="@id/svitrkods" 
    android:layout_alignRight="@+id/svitrkods" 
    android:layout_above="@+id/exit_button" 
    android:freezesText="true" 
    /> 

应用程序是库存应用程序。当产品已经在库存中时,我用红色背景在textview中显示文本。 vaiIrInvent.setBackgroundColor(0xfff00000);可以工作。但当屏幕旋转时,背景颜色不见了... 当应用程序明星,我保存textview原始背景颜色defBackColor = vaiIrInvent.getBackground(); 然后在应用程序我切换到红色或默认。

if (isInInventory) 
{ 
    vaiIrInvent.setBackgroundColor(0xfff00000); 
} 
else 
{ 
    vaiIrInvent.setBackgroundDrawable(defBackColor); 
} 

也许有像android这样的选项:freezesText? 谢谢。

回答

0

回答我的情况是: 保存扫描的条形码时屏幕方向更改

@Override 
public void onSaveInstanceState(Bundle savedInstanceState) { 
    // Save entered code 
    savedInstanceState.putString("svkKods", svkKods.getText().toString()); 
    super.onSaveInstanceState(savedInstanceState); 
} 

并还原代码和查询db。

@Override 
public void onRestoreInstanceState(Bundle savedInstanceState) { 
    super.onRestoreInstanceState(savedInstanceState); 
    // Restore UI state from the savedInstanceState. 
    // This bundle has also been passed to onCreate. 
    String mystr = savedInstanceState.getString("svkKods"); 
    svkKods.setText(mystr); 
    //if code presents 
    if (mystr.length() > 3) FindKods(mystr); //query database and fill all texts and variables 
} 

我正在因为在一个变量做这种方式存储的状态,当条形码在数据库中被发现,然后用户可以提交更改。否则是显示消息必须找到条形码...

0

它看起来像你失去了isInInventory状态轮流,因为默认情况下OS在这种情况下创建一个新的Activity实例。如果是这种情况,那么最好的方法是使用Activity类的保存/恢复状态回调。查看详情:Saving activity state

1

烨rotion调用的onCreate(),你需要将信息保存到恢复的喜好

这个环节应该解释这一点更好

Saving Android Activity state using Save Instance State

+0

我已经找到了,现在我正在寻找如何保存可绘制对象 我认为我的问题有点大。因为我有2个意见。一个在布局文件夹中,一个在布局文件夹中。当屏幕旋转时,我需要找出是否设置了背景,然后将背景传递到横向布局。或者它不是个好主意? – Guntis

+0

问题比我想象的要大得多。当屏幕旋转时,所有变量都消失了。我需要触发器操作来编辑文本来重新查询数据库。明天我会继续寻找一些解决方案。我可以保存在'onSaveInstanceState'中的变量数据。当然,我可以锁定应用程序的水平或垂直,但我不喜欢该解决方案.. – Guntis