Пожалуйста, помогите мне, как сохранить состояние активности?
Я объясняю свою проблему:
У меня много действий в моей программе
Я отправляю данные из одного действия в действие "Dr_see_Patient_Pro" по следующему коду:
Intent i=new Intent(this,Dr_see_Patient_Pro.class);
i.putExtra("idPFf2",id);
startActivity(i);
Поэтому я получаю эти данные в упражнении "Dr_see_Patient_Pro" следующим образом:
idPatient= getIntent().getExtras().getString("idPFf2");
int id=Integer.parseInt(idPatient);
И у меня нет проблем там
И после
Я хочу отправить действие "idPatient" в "Dr_see_Patient_Pro" в другое действие, которое является (write_history), действием следующего кода:
Intent intent=new Intent(this,write_History.class);
intent.putExtra("idPFf3",idPatient);
startActivity(intent);
И у меня нет проблем с получением «idPatient» в «write_history» Деятельности
НО
Когда я хочу вернуться из «write_history» Активности в «Dr_see_Patient_Pro» Активность У меня есть проблема И эта ошибка:
E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myapplication/com.example.myapplication.Dr_see_Patient_Pro}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
at android.app.ActivityThread.access$600(ActivityThread.java:130)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.android.internal.os.LoggingPrintStream.println(LoggingPrintStream.java:298)
at com.example.myapplication.Dr_see_Patient_Pro.onCreate(Dr_see_Patient_Pro.java:37)
at android.app.Activity.performCreate(Activity.java:5008)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
и проблема в строке 37 и ее коде строки 37:
System.out.println(idPatient);
и код моей деятельности: 1 / Dr_see_Patient_Pro
public class Dr_see_Patient_Pro extends AppCompatActivity {
TextView tx, tx1, tx2, tx3, tx4, tx5, tx6;
public static String getInList;
MyDB db;
public String idPatient;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dr_see__patient__pro);
db = new MyDB(this);
tx=(TextView)findViewById(R.id.dr_nameP);
tx1=(TextView)findViewById(R.id.dr_ageP);
tx2=(TextView)findViewById(R.id.dr_genderP);
tx3=(TextView)findViewById(R.id.dr_cityP);
tx4=(TextView)findViewById(R.id.dr_phoneP);
idPatient= getIntent().getExtras().getString("idPFf2");
System.out.println(idPatient);
int id=Integer.parseInt(idPatient);
///phone
Cursor dataname = db.getPaientInfo(id);
while (dataname.moveToNext()) {
String name1 = dataname.getString(0);
String name2 = dataname.getString(1);
tx.setText(name1+" "+name2);
}
Cursor dataPhone = db.getPaientInfo(id);
while (dataPhone.moveToNext()) {
String name2 = dataPhone.getString(2);
tx4.setText(name2);
}
Cursor dataAge = db.getPaientInfo(id);
while (dataAge.moveToNext()) {
String name2 = dataAge.getString(3);
tx1.setText(name2);
}
Cursor dataGender = db.getPaientInfo(id);
while (dataGender.moveToNext()) {
String name2 = dataGender.getString(4);
tx2.setText(name2);
}
Cursor dataCity = db.getPaientInfo(id);
while (dataCity.moveToNext()) {
String name2 = dataCity.getString(5);
tx3.setText(name2);
}
}
public void writeHistory(View v){
Intent intent=new Intent(this,write_History.class);
intent.putExtra("idPFf3",idPatient);
startActivity(intent);
}
public void SeeHistory(View view){
Intent intent=new Intent(this,see_history.class);
startActivity(intent);
}
2 / write_history
public class write_History extends AppCompatActivity {
MyDB myDB;
String raport,charasar;
AlertDialog.Builder builder;
TextInputLayout edt;
TextInputEditText edt1;
EditText edt2;
public String drID,DrIdS;
public int idDr;
public int id;
public String idPatient;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_write__history);
myDB = new MyDB(this);
builder = new AlertDialog.Builder(this);
edt=findViewById(R.id.edt1);
edt1=findViewById(R.id.edtText1);
edt2=findViewById(R.id.edt2);
idPatient= getIntent().getExtras().getString("idPFf3");
System.out.println(idPatient);
id=Integer.parseInt(idPatient);
drID= loginPage.Dr();
Cursor data = myDB.getIDdr(drID);
while (data.moveToNext()) {
DrIdS = data.getString(0);
idDr=Integer.parseInt(DrIdS);
}
System.out.println("dr id " + idDr+" p "+id);
}
private boolean validat() {
String emailInput = edt1.getText().toString();
if (emailInput.isEmpty()) {
edt.setError("Field can't be empty");
return false;
}
else {
edt.setError(null);
return true;
}
}
public void saveHistory(View view){
if( !validat()) {
return;
}
else {
DialogMassage();
}
}
public void DialogMassage() {
myDB = new MyDB(this);
raport=edt1.getText().toString();
charasar=edt2.getText().toString();
setTitle("ئاگاداربە!");
builder.setMessage("ئایا دڵنیای لە پاشەکەوت کردنی زانیاریەکان؟")
.setCancelable(false) .setPositiveButton("بەڵێ", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Boolean result=myDB.SaveHistory(raport,charasar,idDr,id);
System.out.println(idDr+" "+id);
changeA();
}
})
.setNegativeButton("نەخێر", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
}
public void changeA(){
Intent i=new Intent(this,Dr_see_Patient_Pro.class);
i.putExtra("idPFf2",id);
startActivity(i);
}
}
Пожалуйста, помогите мне найти решение!