Я застрял, пытаясь выяснить, куда именно поместить функцию finish () в моем коде.
Я попытался поместить ее в строку 43 ProfileActivity или в строки 39 или 56 MainActivity.Я очень новичок в этом и прочитал, какова цель метода finish (), но не могу понять, куда еще в моем коде он должен идти.
Это всего лишь ниппеты кода ... есть еще (все функции жизненного цикла Activity), но я опущен, чтобы сэкономить место.
public class MainActivity extends AppCompatActivity {
SharedPreferences sp;
EditText email;
public static final String ACTIVITY_NAME = "PROFILE_ACTIVITY";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
email = (EditText)findViewById(R.id.thisEmailIsPassedToPage2);
sp = getSharedPreferences("Lab3", Context.MODE_PRIVATE);
String savedString = sp.getString("Email", "0");
email.setText(savedString);
Log.e(ACTIVITY_NAME, "In Function onCreate() in MainActivity:");
Button login = (Button)findViewById(R.id.loginButton);
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this,
ProfileActivity.class);
EditText et =
(EditText)findViewById(R.id.thisEmailIsPassedToPage2);
intent.putExtra("typed", et.getText().toString());
startActivityForResult(intent, 2);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent
data) {
int i = 0;
i++;
//if request code is 2, then we are coming back from ProfileActivity
if(requestCode == 2){
EditText et =
(EditText)findViewById(R.id.thisEmailIsPassedToPage2);
String fromProfile = data.getStringExtra("typed");
et.setText(fromProfile);
Log.i("Back", "Message");
}
}
public class ProfileActivity extends AppCompatActivity {
private SharedPreferences sp;
private ImageButton mImageButton;
public static final String ACTIVITY_NAME = "PROFILE_ACTIVITY";
public static final int REQUEST_IMAGE_CAPTURE = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_profileactivity);
Log.e(ACTIVITY_NAME, "In Function onCreate() in ProfileActivity:");
Intent fromPrevious = getIntent();
String previousTyped = fromPrevious.getStringExtra("typed");
EditText enterText = (EditText) findViewById(R.id.editText6);
enterText.setText(previousTyped);
mImageButton = (ImageButton) this.findViewById(R.id.imageButton);
mImageButton.setOnClickListener(bt -> {
dispatchTakePictureIntent();
});
}
private void dispatchTakePictureIntent(){
Intent takePictureIntent = new
Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent
data) {
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
Bitmap imageBitmap = (Bitmap) extras.get("data");
mImageButton.setImageBitmap(imageBitmap);
}
}
These are the screenshots:
[MainActivity1stPage][1]
[ProfileActivity2ndPage][2]
[AfterImageButtonPressed][3]
[AfterTakingPictureAndPressingOK][4]