Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将视图添加到滚动视图中的线性布局中会在刷新时擦除_Java_Android_Refresh_Scrollview_Android Linearlayout - Fatal编程技术网

Java 将视图添加到滚动视图中的线性布局中会在刷新时擦除

Java 将视图添加到滚动视图中的线性布局中会在刷新时擦除,java,android,refresh,scrollview,android-linearlayout,Java,Android,Refresh,Scrollview,Android Linearlayout,我目前正在为android开发一个行输入计算器应用程序。单击按钮“Button”时,应将两个文本视图添加到滚动视图内的线性布局“holder\u main\u layout”中。其中一个文本视图是左侧编辑文本的文本值,另一个是右侧评估的答案。所有这些都是可行的,但当我重新调整手机方向(从垂直到横向或横向到不同的横向)时,线性布局又是空白的。我知道让所有这些文本视图都无法访问是不明智的,但这是目前概念的证明 为什么旋转手机时滚动视图为空。我怎样才能防止这种情况发生 public class mai

我目前正在为android开发一个行输入计算器应用程序。单击按钮“Button”时,应将两个文本视图添加到滚动视图内的线性布局“holder\u main\u layout”中。其中一个文本视图是左侧编辑文本的文本值,另一个是右侧评估的答案。所有这些都是可行的,但当我重新调整手机方向(从垂直到横向或横向到不同的横向)时,线性布局又是空白的。我知道让所有这些文本视图都无法访问是不明智的,但这是目前概念的证明

为什么旋转手机时滚动视图为空。我怎样才能防止这种情况发生

public class main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);


    final LinearLayout holder_main_layout=(LinearLayout)findViewById(R.id.linearLayout2);
   final CalculatorBase calc=new CalculatorBase();
    final Button button = (Button) findViewById(R.id.button1);
    final ScrollView scroller=(ScrollView)findViewById(R.id.scrollView1);
    final main self=this;
    final EditText input_text=(EditText)findViewById(R.id.editText1);
    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            TextView input_view=new TextView(self);
            input_view.setText(input_text.getText());
            holder_main_layout.addView(input_view);

            TextView output_view=new TextView(self);
            output_view.setText(String.valueOf(calc.eval_expression(input_text.getText().toString())));
            output_view.setGravity(5);
            holder_main_layout.addView(output_view);

            input_text.setText("");
            scroller.fullScroll(ScrollView.FOCUS_UP);
        }
    });

}

}

默认情况下,当方向改变时,Android会销毁并重新创建活动。你可以做两件事:

  • 保存状态如下所述:
  • 自己处理屏幕方向更改:
先试试第二种方法。修改清单以在活动定义中包含
android:configChanges
行:

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

谢谢,我的应用程序现在运行得很好
@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
}