我查看了其他帖子并尝试了建议的解决方案,但没有一个对我有用。我有一个简单的应用程序,它有一个按钮和 Textview,当用户按下按钮时,TextView 中的值将增加 1。(textview 只有数字)。
我的纵向和横向模式有不同的布局,并且可以通过在我的 XML 中使用此代码来冻结屏幕方向的值android:freezesText="true"
。但是,我现在遇到的问题是,当用户按下按钮以将 TextView 的值增加 1 时,在屏幕方向上,textview 中的值从 0 开始。例如
例如,在纵向模式下,该值为 23,当用户将屏幕旋转为横向并按下按钮时,该值将返回 1。如何使该值从 23 开始。
以下是我的代码;
纵向布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/textview"/>
<Button
android:id="@+id/up"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/up" />
</LinearLayout>
土地空间布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/textview"/>
<Button
android:id="@+id/up"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/up" />
</LinearLayout>
Java 代码
int counter = 0;
TextView textview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textview = (TextView)findViewById(R.id.textview );
final Button up = (Button)findViewById(R.id.up);
up.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
counter++;
textview.setText("" + counter);
}
});
}