2012-02-13 2 views
0

내 응용 프로그램에서 많은 뷰가 있는데, 이제 문제는 한 뷰에서 다른 뷰로 돌아가는 방법입니다.back 함수를 만들고 마지막 contentView를 설정하는 방법

내가 다시 설정할 수있는 방법 모든보기의 단추가 있지만 안드로이드 뒤로 하드 단추를 사용하고 싶습니다.

나는 이런 식으로 뭔가를 시도 :

public boolean onKeyDown(int keyCode, KeyEvent event) 
{  
    if(keyCode==KeyEvent.KEYCODE_BACK) 
      { 
     finish(); 
      } 
return false; 
} 

는 그러나 문제는이 내 응용 프로그램을 닫을 것입니다. 올바른 해결책을 알려주시겠습니까? 예를 들어 마지막보기를 설정했음을 암기하고 다시이보기 또는 이와 비슷한 상황으로 돌아갈 수 있습니다.

public void CheckIfUserIsLogedIn() 
{ 
    int userPresence = localDatabase.CheckUserPresence(); 
    if (userPresence == 0) 
    { 
     setContentView(R.layout.main); 
    } 
    else 
    { 
     setContentView(R.layout.userlogedon); 
    } 
} 

감사합니다 : 여기

내가보기를 (내 주요 활동의 방법이다)을 변경하고있는 코드입니다.

+0

이전 버튼을 다시 보시겠습니까? – Siten

+0

예 @ 시텐, 맞습니다. –

+0

다음 활동으로 이동하는 동안 현재 활동을 마치시겠습니까? 새로운 활동 또는 다음 활동을 시작할 코드를 입력하십시오. –

답변

2

보세요! Activity 클래스는 내용 View에 있어야한다

당신이 길을 잘못하고있는

.... (권장되는 방법이고 사용하기 쉽고 구현되기 때문에).

다음으로 이동하려는 경우 View을 별도의 Activity 아래에 표시하십시오.

완료하면 자동으로 이전 Activity으로 리디렉션됩니다.

(당신이 :) 이전보기를 기억 할 필요가 없습니다)

See here

, Activity 스택에서 작동하는 방법에 대해 설명합니다.

+0

답장을 보내 주셔서 감사합니다. @Adil, 알겠습니다. 그렇다면 모든 View마다 다른 클래스를 사용해야합니까? –

+0

@Ana : 예. 로그인 화면을 보여주고 싶다면 'LoginActivity'가 있어야합니다. 그러면'R.layout.userlogedon'이 내용보기로 나타납니다. 해피 코딩! 건배! :) –

+0

@Ana : 예. 모든 각 View에 대해 다른 활동을 사용해야합니다. –

1

Android가 자동으로 모든 작업을 수행하므로 문제를 올바르게 이해할 수 없습니다. 뷰가 당신이이 일시 정지 된 다른보기로 전환 할 때 열 (화면에 만 집중하지 않은) 또는 중지하면 현재보기 (활동)에 의해 실행 된 경우

http://developer.android.com/reference/android/app/Activity.html

(더 초점이 없습니다) 이전보기 (활동), 뒤로 버튼을 누르면 현재보기를 "닫고"이전보기로 자동으로 돌아갑니다.

이제 두 가지 :

아마도 당신은 단순히에 표시하거나 일을 나쁜 방법이며, 안드로이드 권장하지 않은 구성 요소 떨어져 같은 활동 고급형 아파트 모든 뷰를 열고있다
  1. . 당신이해야 할 일은 1 view = 1 activity입니다.

  2. 당신은 "보기"에 뒤로 버튼을 구현해야하는 "iPhone/iPad"와 같은 생각을하고 있습니다. 안드로이드에서는 그렇게 할 필요가 없습니다. 이 시점에서 코드에 "finish"명령을 넣으면 응용 프로그램이 닫히는 것처럼 보이므로 1 번에서 설명한대로 프로그래밍했다고 생각할 수 있습니다.

편집 도움이되기를 바랍니다 :

새로운 활동을 시작하려면 당신이를로드 할 당신이 당신의 코드에 넣고이

startActivity(new Intent(this, MyOtherActivity.class)); 

처럼 할 새로운보기 (활동)

이제 t

int aNumber; 
String aString; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    aNumber= getIntent().getExtras().getInt("myNumber"); 
    aString= getIntent().getExtras().getString("myString"); 
} 
+0

고마워요 @HpTeam, 네, 맞아요, 내 모든 견해에 대해 하나의 활동을했습니다. 나는 이것을 바꾸려고 노력할 것이다. –

+0

내 대답을 편집하여 자세한 설명을 제공합니다. – HpTerm

0

는 사실이 이해가 확실하지 메신저

Intent myIntent; //intent declaration 

int aNumber = 10; // info to send to other activity 
String aString = "abcd"; // info to send to other activity 

// link Intent to the other activity 
myIntent = new Intent(view.getContext(), MyOtherActivity.class) 

//put the extra info 
myIntent.putExtra("myNumber", aNumber); 
myIntent.putExtra("myString", aString); 

//start the new view/activity 
startActivity(myIntent); 

새로운 열 활동에 당신은 (보통 한 OnCreate에서)이 같은 정보를 정기적으로 검색 :를 ransfer 활동 사이에 정보는이 같은 작업을 수행해야합니다 정확히하지만 ..

지도 또는 공유 환경 설정을 취하고 뒤로 버튼은지도 또는 공유 환경 설정의 마지막보기를 설정합니다.

호출시 또는 시작시에 사용자가 저장 한 데이터를 가져옵니다.

이렇게하면 도움이됩니다.

관련 문제