質問編集履歴

2 失礼しました。再度変更しました。

kimura

kimura score 59

2016/08/28 23:11  投稿

回転時にデータ保存されない
回転してもデータを保持するようにしたいのですが、フィールドのstdWeightの値が回転すると0になってしまいます。
どこが間違っているのか不明で教えていただけますと助かります。
宜しくお願い致します。
```
public class MainActivity extends Activity {
   //標準体重
   double stdWeight;
   //メッセージ用テキスト
   String stdWeightTxt = "標準体重:";
   String errorMsg = "数値以外が入力されました";
   //小数点第二までを表示させる
   DecimalFormat myFormat = new DecimalFormat("###.##");
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
   }
   public void Click(View v){
       EditText ed = (EditText)findViewById(R.id.editText1);
       String edStr = ed.getText().toString();
       TextView tv = (TextView)findViewById(R.id.textView3);
       try{
           double height = Double.parseDouble(edStr);
           stdWeight = ((height / 100) * (height / 100)) * 22;
           String stdWeightStr = myFormat.format(stdWeight);
           tv.setText(stdWeightTxt + stdWeightStr + "kg");
       }catch(NumberFormatException e){
           Toast.makeText(this, errorMsg, Toast.LENGTH_LONG).show();
       }
   }//click
   @Override
   protected void onSaveInstanceState(Bundle outState) {
       super.onSaveInstanceState(outState);
       outState.putDouble("SDTWEIGHT", stdWeight);
   }
   @Override
   protected void onRestoreInstanceState(Bundle savedInstanceState) {
       super.onRestoreInstanceState(savedInstanceState);
       if(savedInstanceState != null){
           stdWeight = savedInstanceState.getDouble("STDWEIGHT");
           TextView tv = (TextView)findViewById(R.id.textView3);
           String stdWeightStr = myFormat.format(stdWeight);
           tv.setText(stdWeightTxt + stdWeightStr + "kg");
       }//if
   }//onRestoreInstanceState
}
コード  
``````  
 
申し訳ありません。
activity_main.xmlを追加させていただきました。
コード
``````<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
```<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
               xmlns:tools="http://schemas.android.com/tools"
               android:layout_width="match_parent"
               android:layout_height="match_parent"
               android:paddingLeft="@dimen/activity_horizontal_margin"
               android:paddingRight="@dimen/activity_horizontal_margin"
               android:paddingTop="@dimen/activity_vertical_margin"
               android:paddingBottom="@dimen/activity_vertical_margin"
               tools:context=".MainActivity"
   android:orientation="vertical">
   <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:orientation="horizontal">
       <TextView
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:textAppearance="?android:attr/textAppearanceLarge"
           android:text="あなたの身長:"
           android:id="@+id/textView1"/>
       <EditText
           android:layout_width="0dp"
           android:layout_height="wrap_content"
           android:layout_weight="1"
           android:gravity="right"
           android:id="@+id/editText1"/>
       <TextView
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:textAppearance="?android:attr/textAppearanceLarge"
           android:text="cm"
           android:id="@+id/textView2"/>
   </LinearLayout>
   <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:orientation="vertical">
       <Button
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_gravity="center"
           android:onClick="Click"
           android:text="計算"
           android:id="@+id/button1"/>
       <TextView
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_gravity="center"
           android:textAppearance="?android:attr/textAppearanceLarge"
           android:text="標準体重を計算します"
           android:id="@+id/textView3"/>
   </LinearLayout>
</LinearLayout>
コード
```
```
  • Android

    9393 questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

1 activity_main.xmlを追加

kimura

kimura score 59

2016/08/28 23:02  投稿

回転時にデータ保存されない
回転してもデータを保持するようにしたいのですが、フィールドのstdWeightの値が回転すると0になってしまいます。
どこが間違っているのか不明で教えていただけますと助かります。
宜しくお願い致します。
```
public class MainActivity extends Activity {
   //標準体重
   double stdWeight;
   //メッセージ用テキスト
   String stdWeightTxt = "標準体重:";
   String errorMsg = "数値以外が入力されました";
   //小数点第二までを表示させる
   DecimalFormat myFormat = new DecimalFormat("###.##");
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
   }
   public void Click(View v){
       EditText ed = (EditText)findViewById(R.id.editText1);
       String edStr = ed.getText().toString();
       TextView tv = (TextView)findViewById(R.id.textView3);
       try{
           double height = Double.parseDouble(edStr);
           stdWeight = ((height / 100) * (height / 100)) * 22;
           String stdWeightStr = myFormat.format(stdWeight);
           tv.setText(stdWeightTxt + stdWeightStr + "kg");
       }catch(NumberFormatException e){
           Toast.makeText(this, errorMsg, Toast.LENGTH_LONG).show();
       }
   }//click
   @Override
   protected void onSaveInstanceState(Bundle outState) {
       super.onSaveInstanceState(outState);
       outState.putDouble("SDTWEIGHT", stdWeight);
   }
   @Override
   protected void onRestoreInstanceState(Bundle savedInstanceState) {
       super.onRestoreInstanceState(savedInstanceState);
       if(savedInstanceState != null){
           stdWeight = savedInstanceState.getDouble("STDWEIGHT");
           TextView tv = (TextView)findViewById(R.id.textView3);
           String stdWeightStr = myFormat.format(stdWeight);
           tv.setText(stdWeightTxt + stdWeightStr + "kg");
       }//if
   }//onRestoreInstanceState
}
 
申し訳ありません。  
activity_main.xmlを追加させていただきました。  
コード  
``````<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
               xmlns:tools="http://schemas.android.com/tools"  
               android:layout_width="match_parent"  
               android:layout_height="match_parent"  
               android:paddingLeft="@dimen/activity_horizontal_margin"  
               android:paddingRight="@dimen/activity_horizontal_margin"  
               android:paddingTop="@dimen/activity_vertical_margin"  
               android:paddingBottom="@dimen/activity_vertical_margin"  
               tools:context=".MainActivity"  
   android:orientation="vertical">  
 
   <LinearLayout  
       android:layout_width="match_parent"  
       android:layout_height="wrap_content"  
       android:orientation="horizontal">  
 
       <TextView  
           android:layout_width="wrap_content"  
           android:layout_height="wrap_content"  
           android:textAppearance="?android:attr/textAppearanceLarge"  
           android:text="あなたの身長:"  
           android:id="@+id/textView1"/>  
 
       <EditText  
           android:layout_width="0dp"  
           android:layout_height="wrap_content"  
           android:layout_weight="1"  
           android:gravity="right"  
           android:id="@+id/editText1"/>  
 
       <TextView  
           android:layout_width="wrap_content"  
           android:layout_height="wrap_content"  
           android:textAppearance="?android:attr/textAppearanceLarge"  
           android:text="cm"  
           android:id="@+id/textView2"/>  
   </LinearLayout>  
 
 
   <LinearLayout  
       android:layout_width="match_parent"  
       android:layout_height="wrap_content"  
       android:orientation="vertical">  
 
       <Button  
           android:layout_width="wrap_content"  
           android:layout_height="wrap_content"  
           android:layout_gravity="center"  
           android:onClick="Click"  
           android:text="計算"  
           android:id="@+id/button1"/>  
 
       <TextView  
           android:layout_width="wrap_content"  
           android:layout_height="wrap_content"  
           android:layout_gravity="center"  
           android:textAppearance="?android:attr/textAppearanceLarge"  
           android:text="標準体重を計算します"  
           android:id="@+id/textView3"/>  
   </LinearLayout>  
</LinearLayout>  
 
コード
```
  • Android

    9393 questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る