设备旋转时,TextView的文本消失

我正在为Android编写一个电话拨号器应用程序。 我为键盘创build了一个布局,其中包含一个TextView和10个button。 button是10个数字(0到9)的键,TextView用于按照按键显示数字。

在我的应用程序中,我将每个button的文本(“0”或“1”等)添加到TextView中。 如果我按下button1,2,3,那么TextView上文本是123 。 问题是, 让我们把屏幕在横向模式和TextView包含123,如果我打开它,纵向模式TextView上没有文本。

请帮我关于这个。

Solutions Collecting From Web of "设备旋转时,TextView的文本消失"

请检查方向更改,在调用create方法时,需要重新创build所有视图,因此您需要使用以下方法之一:

  1. 使用onSavedInstance方法并保存组件/视图的状态。
  2. 在activity标签android:configChanges =“keyboardHidden | orientation”的清单文件中使用下面的标志true。 如下所示:

     <activity android:name=".SampleActivity" android:label="@string/app_name" android:configChanges="keyboardHidden|orientation"> ... </activity> 

@jeetbuild议什么不适合我。 我不得不添加“screenSize”。 这是您应该添加到您的manifest.xml文件的行中的<activity>节点的行:

 android:configChanges="keyboardHidden|orientation|screenSize" 

因此,完整的节点可能看起来像这样:

 <activity android:name=".YourActivity" android:label="@string/app_name" android:configChanges="keyboardHidden|orientation|screenSize" android:theme="@style/AppTheme.NoActionBar"> 

这是由于Android基本上破坏了活动,并在每次旋转设备时重新创build。 这主要是为了允许基于纵向/横向模式的不同布局。

处理这个问题的最好方法是通过响应onSavedInstance事件(在Android破坏活动之前调用),然后重新应用标准onCreate事件中的那些事件来存储需要保留在Activity Bundle中的任何数据。

尽pipe可以在configChanges属性中添加“方向”,但请记住,您基本上是在告诉Android,您将自己处理与方向更改有关的所有事情,包括更改布局等。

如果有人仍然有麻烦…这对我来说是伎俩

 public class BranjeKP extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_branje_kp); //... } @Override protected void onSaveInstanceState(Bundle out) { super.onSaveInstanceState(out); out.putString("TVNazivPod", TVNazivPodatka.getText().toString()); out.putString("TVEnotaMere", TVEnotaMere.getText().toString()); } @Override protected void onRestoreInstanceState(Bundle in) { super.onRestoreInstanceState(in); TVNazivPodatka.setText(in.getString("TVNazivPod")); TVEnotaMere.setText(in.getString("TVEnotaMere")); } 

你基本上保存任何你想要的值之前旋转(这是什么时候onSaveInstanceState被调用)到一个捆绑和旋转后(onRestoreInstanceState)你只是从捆绑拉出所有的值。 只是为了澄清,TVNazivPodatka和TVEnotaMere是TextView小部件。

…从如何防止自定义视图在屏幕方向更改中丢失状态的帮助