programing

Android:이전 활동으로 돌아가기

goodsources 2023. 6. 5. 23:52
반응형

Android:이전 활동으로 돌아가기

나는 안드로이드 앱에서 간단한 것을 하고 싶습니다.이전 활동으로 돌아가는 것은 어떻게 가능합니까?

이전 활동으로 돌아가려면 어떤 코드가 필요합니까?

Android 활동은 활동 스택에 저장됩니다.이전 활동으로 돌아간다는 것은 두 가지를 의미할 수 있습니다.

  1. startActivityForResult로 다른 활동에서 새 활동을 열었습니다.이 경우 코드에서 finishActivity() 함수를 호출하면 이전 활동으로 돌아갑니다.

  2. 활동 스택을 추적합니다.과 같은 의도 할 수 .FLAG_ACTIVITY_REORDER_TO_FRONT또는FLAG_ACTIVITY_PREVIOUS_IS_TOP이를 사용하여 응용프로그램의 활동을 서로 섞을 수 있습니다.하지만 많이 사용하지는 않았습니다.여기서 깃발을 보십시오. http://developer.android.com/reference/android/content/Intent.html

댓글에 언급된 것처럼, 활동이 다음과 함께 열린 경우.startActivity()그러면 그것을 끝낼 수 있습니다.finish() Up 버을사면에확수있습다니인할에서 확인할 수 .onOptionsSelected(MenuItem item)를 목확 ID와 대조하여 android.R.id.home와는 달리R.id.home댓글에 나온 것처럼.

시도해 보세요. 이것은 뒤로 버튼이 기본적으로 하는 것입니다.

클릭 완료()에 쓰기만 하면 됩니다.이전 활동으로 이동합니다.

이것만

super.onBackPressed();
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

이렇게 하면 스택을 유지하고 스택에서 모든 활동을 삭제하는 이전 활동으로 이동합니다.

예를 들어 스택이 A->B->C->D이고 이 플래그로 B를 시작하면 스택이 A->B가 됩니다.

이 메소드를 호출하여 현재 활동을 완료하거나 backPressed로 돌아가십시오.

finish();

OR

onBackPressed();

뒤로 단추 동작을 제어하시겠습니까?두 가지 방법 중 하나를 사용하여 뒤로 단추를 덮어쓸 수 있습니다(특정 활동으로 이동).

Android 1.6 이하의 경우:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
        // do something on back.
        return true;
    }

    return super.onKeyDown(keyCode, event);
}

또는 Android 2.0 이상만 지원하는 경우:

@Override
public void onBackPressed() {
    // do something on back.
    return;
}

자세한 내용은 http://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html .

뒤로 버튼을 눌러야 하므로 이 동작을 시도합니다.

finish();
super.onBackPressed();

onCLick() 방법에 추가하면 이전 활동으로 돌아갑니다.

마무리 »;

아니면 이걸 쓰셔도 돼요.그것은 나에게 완벽하게 효과가 있었습니다.

 @Override
  public boolean onOptionsItemSelected(MenuItem item) {
  int id = item.getItemId();

      if ( id == android.R.id.home ) {
         finish();
         return true;
       }

  return super.onOptionsItemSelected(item);
  }

이전 활동으로 이동하려면 이전 활동으로 이동하십시오.

finish();

OR

onBackPressed();

두 번째 또는 그 이하의 활동으로 이동하려면 다음을 사용합니다.

intent = new Intent(MyFourthActivity.this , MySecondActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
//Bundle is optional
Bundle bundle = new Bundle();
bundle.putString("MyValue1", val1);
intent.putExtras(bundle);
//end Bundle
startActivity(intent);

활동 상위가 있는 AndroidManifest.xml 파일을 올바르게 설정한 경우 다음을 사용할 수 있습니다.

NavUtils.navigateUpFromSameTask(this);

여기서 자식 활동을 수행합니다.

같은 문제를 가지고 있고,

finish();  OR super.onBackPressed();

나는 잘 작동했고, 둘 다 똑같이 작동했지만, 운이 없었습니다.return

명시적으로 전화할 수 있습니다.onBackPressed가장 쉬운 방법입니다.
자세한 내용은 이전 활동으로 돌아가기를 참조하십시오.

의도를 사용하여 두 번째 활동 시작(둘 중 하나 사용)startActivity또는startActivityForResult요구 사항에 따라).이제 사용자가 뒤로 버튼을 누르면 상단의 현재 활동이 닫히고 이전 활동이 표시됩니다.

이제 두 가지 작업이 있습니다. 하나는 사용자의 언어, 국가 등의 설정을 선택하는 작업입니다. 이 작업을 선택한 후 사용자는 다음 버튼을 클릭하여 로그인 양식으로 이동합니다. 로그인에 실패하면 로그인 작업에 참여하게 됩니다. 로그인에 성공하면 어떻게 됩니까?

로그인에 성공하면 다른 작업을 시작해야 합니다.즉, 세 번째 활동이 시작되고 두 개의 활동이 실행 중입니다.이 경우, 사용하기 좋을 것입니다.startActivityForResult로그인에 성공하면 확인 데이터를 첫 번째 활동으로 보내고 로그인 활동을 닫습니다.이제 데이터가 수신되면 세 번째 활동을 시작하고 마침을 사용하여 첫 번째 활동을 닫습니다.

사용해 볼 수 있습니다.

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {

        finish();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

코드화하지 않은 경우 모든 새 활동/의도에는 기본적으로 이전/이전 동작이 있습니다.finish()호출 활동에 따라.

@Override
public void onBackPressed() {
    super.onBackPressed();
}

그리고 버튼을 클릭하고 싶으면 뒤로를 클릭한 다음 간단히 놓습니다.

bbsubmit.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        onBackPressed();
    }
});

나는 NavUtils.navigUpFromSameTask()를 추천합니다. 쉽고 매우 간단하며 구글 개발자로부터 배울 수 있습니다.제가 도와드릴 수 있으면 좋겠네요!

 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
      int id = item.getItemId();

      if ( id == android.R.id.home ) {
          finish();
          return true;
      }

      return super.onOptionsItemSelected(item);
 }

도구 모음 뒤로 단추를 하드웨어 뒤로 단추로 모두 사용할 수 있습니다.

이전 활동으로 돌아갈 수 있는 몇 가지 사례가 있습니다.

사례 1: 결과를 이전 활동으로 되돌리려면 활동 A를 선택합니다.자바

 Intent intent = new Intent(ActivityA.this, FBHelperActivity.class);
               startActivityForResult(intent,2);

FBHelperActivity.java

 Intent returnIntent = new Intent();
 setResult(RESULT_OK, returnIntent);
 finish();

사례 2: 활동 A --> FB 도우미 활동 ----> 활동a

활동 A.자바

 Intent intent = new Intent(ActivityA.this, FBHelperActivity.class);
               startActivity(intent);

FBHelperActivity.java

after getting of result call finish();
 By this way your second activity will finish and because 
 you did not call finish() in your first activity then
 automatic first activity is in back ground, will visible.

그냥 이것을 시도해 보세요, 첫 번째 활동.

Intent mainIntent = new Intent(Activity1.this, Activity2.class);
this.startActivity(mainIntent);

두 번째 활동에서

@Override
public void onBackPressed() {
    this.finish();
}

먼저, 이전 활동으로 돌아가고 싶다면 명심해야 할 것이 있습니다.그런 다음 의도를 사용하여 다른 활동으로 이동할 때 마침() 메서드를 호출하지 마십시오.

그런 다음 현재 활동에서 이전 활동으로 되돌아가는 두 가지 방법이 있습니다.

간단히 전화하기:

finish()

OR

super.onBackPressed();

뒤로 단추를 눌러 한 활동에서 다른 활동으로 돌아가려면 아래에 지정된 코드를 사용하여 현재 활동 이름을 사용한 다음 대상 활동을 사용합니다.

@Override
public void onBackPressed() {
    // do something on back.
    startActivity(new Intent(secondActivity.this, MainActivity.class));
    return;
}

언급URL : https://stackoverflow.com/questions/4038479/android-go-back-to-previous-activity

반응형