java - addView 到 ScrollView 中的线性布局在刷新时被删除

标签 java android refresh scrollview android-linearlayout

我目前正在开发适用于 Android 的行输入计算器应用程序。单击按钮“按钮”时,它应该将两个 TextView 添加到 ScrollView 内的线性布局“holder_main_layout”中。其中一个 TextView 是左侧编辑文本的文本值,另一个是右侧的评估答案。所有这些都有效,但是当我重新调整手机方向(从垂直方向到横向或从横向到不同的横向方向)时,线性布局再次变为空白。我知道让所有这些 TextView 无法访问它们并不明智,但目前这是概念证明。

为什么我旋转手机时 ScrollView 是空的。我怎样才能防止这种情况发生。

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 会销毁并重新创建 Activity。你可以做两件事:

先试试第二种方法。修改您的 list 以在 Activity 定义中包含 android:configChanges 行:

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

然后在 Activity 代码中放置以下方法:

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
}

关于java - addView 到 ScrollView 中的线性布局在刷新时被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5447677/

相关文章:

安卓和 Facebook : How to use Facebook Query Language (FQL) out of Android Application

ios - 重新加载数据时刷新 tableView 闪烁

PHP:刷新我的代码

extjs - 从 ExtJS 4 中的商店重新加载数据

java - 异常消息可以包含Java中的正则表达式字符吗?

java - 如何构建更新的 Uber Java SDK?需要 gradle 构建方面的帮助

android - Progressbarstyle 不适用于 android

java - 本地最终引用的安全发布

java - 在 java 中读取和存储 .bmp 文件

android - 获取当前的 SignalStrengths android