0

Androidアプリケーションを設計しようとしていますが、そのアプリケーションでFirst ActivityからSecond Activityへデータを送信しました。データではありませんが、2番目のアクティビティでは、私は自分のアプリケーションポートレートモードになく、景観へのアプリケーションの移行も、私はこれらの両方を使用していたデータを保存するには、このコードonSaveInstanceState()メソッドとonRestoreInstanceState()メソッドを使用してEditTextに目的のデータを保存するにはどうすればいいですか?

@Override 
 
    protected void onSaveInstanceState(Bundle outState) { 
 
     super.onSaveInstanceState(outState); 
 
    } 
 

 
    @Override 
 
    protected void onRestoreInstanceState(Bundle savedInstanceState) { 
 
     super.onRestoreInstanceState(savedInstanceState); 
 
    }

を使用しています保存されます。回転すると、どのアプリケーションがEditTextビューにあるかのデータが破壊されています。

MainActivity.javaを、以下のコードをチェックし、私はデータを保存するためにミスをやっているの提案
を教えてください

public class MainActivity extends AppCompatActivity { 
 
    EditText name,age; 
 
    TextView text_name,text_age; 
 
    Button btn; 
 

 
    @Override 
 
    protected void onCreate(Bundle savedInstanceState) { 
 
     super.onCreate(savedInstanceState); 
 
     setContentView(R.layout.activity_main); 
 
     name=(EditText) findViewById(R.id.name); 
 
     age=(EditText) findViewById(R.id.age); 
 
     text_name=(TextView) findViewById(R.id.name_edit); 
 
     text_age=(TextView) findViewById(R.id.name_age); 
 
     btn=(Button) findViewById(R.id.click); 
 

 
     //Button Click to send data to another activity 
 

 
     btn.setOnClickListener(new View.OnClickListener() { 
 
      @Override 
 
      public void onClick(View view) { 
 
       Bundle bundle=new Bundle(); 
 
       String user_name=name.getText().toString(); 
 
       String user_age=age.getText().toString(); 
 
       bundle.putString("UName",user_name); 
 
       bundle.putString("UAge",user_age); 
 
       Intent intent=new Intent(MainActivity.this,SecondClass.class); 
 
       intent.putExtras(bundle); 
 
       startActivity(intent); 
 
      } 
 
     }); 
 
    } 
 
    
 
}

SecondClass.java

public class SecondClass extends Activity { 
 
    EditText name,age; 
 
    TextView text_name,text_age; 
 
    String namer,ager; 
 
    private String savedName,savedAge; 
 
    @Override 
 
    protected void onCreate(Bundle savedInstanceState) { 
 
     super.onCreate(savedInstanceState); 
 
     setContentView(R.layout.second_activity_layout); 
 
     name=(EditText) findViewById(R.id.name); 
 
     age=(EditText) findViewById(R.id.age); 
 
     text_name=(TextView) findViewById(R.id.name_edit); 
 
     text_age=(TextView) findViewById(R.id.name_age); 
 

 
     if (savedInstanceState!=null) 
 
     { 
 
      savedInstanceState.get(savedName); 
 
      name.setText(savedName); 
 
      savedInstanceState.get(savedAge); 
 
      age.setText(savedAge); 
 
     } 
 
     if (savedInstanceState==null) 
 
     { 
 
      Intent i=getIntent(); 
 
      Bundle bundle=i.getExtras(); 
 
      namer=bundle.getString("UName"); 
 
      name.setText(namer); 
 
      ager=bundle.getString("UAge"); 
 
      age.setText(ager); 
 
     } 
 

 
    } 
 

 
    @Override 
 
    protected void onSaveInstanceState(Bundle outState) { 
 
     super.onSaveInstanceState(outState); 
 
     outState.putString(savedName,namer); 
 
     outState.putString(savedAge,ager); 
 
    } 
 

 
    @Override 
 
    protected void onRestoreInstanceState(Bundle savedInstanceState) { 
 
     super.onRestoreInstanceState(savedInstanceState); 
 
     if (savedInstanceState!=null) 
 
     { 
 
      savedInstanceState.get(savedName); 
 
      name.setText(savedName); 
 
      savedInstanceState.get(savedAge); 
 
      age.setText(savedAge); 
 
     } 
 
     if (savedInstanceState==null) 
 
     { 
 
      Intent i=getIntent(); 
 
      Bundle bundle=i.getExtras(); 
 
      namer=bundle.getString("UName"); 
 
      name.setText(namer); 
 
      ager=bundle.getString("UAge"); 
 
      age.setText(ager); 
 
     } 
 

 
    } 
 
}

+0

'super.onSaveInstanceState(outState)を移動してみてください;'この文の後に 'outState.putString(savedAge、エージャー);' –

答えて

0

はその後、 'outState' にデータを置く

super.onSaveInstanceState(outState)」と呼ぶ最初に入れて、キーに保存されたインスタンスの値を取得し、かつ、

はこれを試してみてください。

public class SecondClass extends Activity { 
 
    private static final String SAVED_NAME="savedName"; 
 
    private static final String SAVED_AGE="savedAge"; 
 
    EditText name,age; 
 
    TextView text_name,text_age; 
 
    String namer,ager; 
 
    private String savedName,savedAge; 
 
    @Override 
 
    protected void onCreate(Bundle savedInstanceState) { 
 
     super.onCreate(savedInstanceState); 
 
     setContentView(R.layout.second_activity_layout); 
 
     name=(EditText) findViewById(R.id.name); 
 
     age=(EditText) findViewById(R.id.age); 
 
     text_name=(TextView) findViewById(R.id.name_edit); 
 
     text_age=(TextView) findViewById(R.id.name_age); 
 

 
     if (savedInstanceState!=null) 
 
     { 
 
      namer = savedInstanceState.get(SAVED_NAME); 
 
      name.setText(namer); 
 
      ager = savedInstanceState.get(SAVED_AGE); 
 
      age.setText(ager); 
 
     } 
 
     if (savedInstanceState==null) 
 
     { 
 
      Intent i=getIntent(); 
 
      Bundle bundle=i.getExtras(); 
 
      namer=bundle.getString("UName"); 
 
      name.setText(namer); 
 
      ager=bundle.getString("UAge"); 
 
      age.setText(ager); 
 
     } 
 

 
    } 
 

 
    @Override 
 
    protected void onSaveInstanceState(Bundle outState) { 
 
     outState.putString(savedName,namer); 
 
     outState.putString(savedAge,ager); 
 
     super.onSaveInstanceState(outState); 
 
     
 
    } 
 

 
    @Override 
 
    protected void onRestoreInstanceState(Bundle savedInstanceState) { 
 
     super.onRestoreInstanceState(savedInstanceState); 
 
     if (savedInstanceState!=null) 
 
     { 
 
      namer = savedInstanceState.get(SAVED_NAME); 
 
      name.setText(namer); 
 
      ager = savedInstanceState.get(SAVED_AGE); 
 
      age.setText(ager); 
 
     } 
 
     if (savedInstanceState==null) 
 
     { 
 
      Intent i=getIntent(); 
 
      Bundle bundle=i.getExtras(); 
 
      namer=bundle.getString("UName"); 
 
      name.setText(namer); 
 
      ager=bundle.getString("UAge"); 
 
      age.setText(ager); 
 
     } 
 

 
    } 
 
}

+0

@Hamideza、答えをくれてありがとう – sreeku24

関連する問題