2012-07-12 4 views
19

사용자를 안드로이드 네임 = "com.example.example"이없는 메인 액티비티로 곧바로 이끌 수있는 버튼을 만들고 싶습니다.
android.intent.etc ...
이 활동으로 돌아가려면 어떻게 내 버튼을 참조 할 수 있습니까?메인 액티비티로 돌아 가기 버튼

+0

덕분에, – Moussa

+0

가 시작하려고하는 활동의 전체 이름은 무엇입니까 (영어 나쁜 있습니다)? <활동 안드로이드 : 라벨 = "@ 문자열/APP_NAME" 안드로이드 : 이름 – confucius

+0

주요 활동은, 그녀는 <: 아이콘 = "@ 드로어 블/ic_launcher" 안드로이드 라벨 = "@ 문자열/APP_NAME"응용 프로그램 안드로이드>입니다 . "메인"=> <의도 필터> <동작 로이드 이름 = "android.intent.action.MAIN"/> <카테고리 로이드 이름 = "android.intent.category.LAUNCHER"/> Moussa

답변

40

는 주요 활동이 Main.java라고 말할 수 있습니다. 편집

btnBack.setOnClickListener(new OnClickListener(){ 

    private void onClick(){ 
    Intent intent = new Intent(currentActivity.this, Main.class); 
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(intent); 
    } 
}); 
+0

이렇게하면 홈 활동의 새 인스턴스가 스택에 추가되고 사용자는 홈 활동으로 돌아 가지 않습니다. –

+0

스택에 새 인스턴스를 추가하려고합니다 !! –

+1

새 인스턴스를 스택에 추가하지 않도록 플래그를 추가했습니다. – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

0

어디서나 버튼 onClick 메서드 내에 필요한 매개 변수로 startActivity()를 호출하면됩니다. 그게 전부 야. 주 (처음 생성) 활동이 튀어 있도록

+0

??? 메신저 멍청한 녀석 – Moussa

3
Intent intent = new Intent(this, Main.class); 
     intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     startActivity(intent); 
+0

새로운 의도에 대한 오류 (this, Main.class); 오류 – Moussa

+0

이 내 설정이다 : 공공 무효 온 클릭 (보기 V) { \t // 클릭에 \t \t 의도 의도 = 새로운 의도 (이, Main.class가을) 작업을 수행합니다; \t intent.addFlags (Intent.FLAG_ACTIVITY_NEW_TASK \t | Intent.FLAG_ACTIVITY_CLEAR_TOP); \t startActivity (의도); \t \t 이것은 오류입니다. 생성자 의도 (새 View.OnClickListener() {}, 클래스

)는 정의되지 않았습니다. ' – confucius

+0

무엇 – Moussa

14

사용 startActivity(intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));

+0

+1 : 올바른 응답입니다. NEW_TASK와 같은 플래그를 추가하면 사용자에게 예기치 않은 동작 만 생성되고 새로운 활동을 시작하면 두 번째 (새) 인스턴스가 스택에 추가됩니다. – Devunwired

+0

작동하지 않습니다. 더 자세히 설명해 주시겠습니까? – Moussa

+1

@Moussa Intent a = 새로운 인 텐트 (this, Home.class); a.setFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity (a); –

9

가끔은 그냥, 현재 활동을 종료 activity.finish()를 호출 할 수 있습니다. 이 사건이 아닌 경우

, 이렇게 :

Intent intent = new Intent(getApplicationContext(), Main.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)    
startActivity(intent); 
0
public void onBackPressed(){ 
    finish(); 
} 
+2

이것은 이것이 main으로 갈 것이라는 것을 의미하지 않는다. 이것은 스택의 이전 활동으로 돌아갈 것임을 의미한다. 잘못된 질문입니다. –

+0

질문에 대한 답변을 제공하지 않습니다. 충분한 [평판] (https://stackoverflow.com/help/whats-reputation)이 있으면 [모든 게시물에 주석 달기] (https://stackoverflow.com/help/privileges/comment) 할 수 있습니다. 대신, [질문자의 설명이 필요없는 답변을 제공하십시오] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do- 대신). - [리뷰에서] (리뷰/저품절 포스트/16343576) – Zoe

+0

@ LunarWatcher 나는 정중하게 동의하지 않습니다. _ 답변 _ 답장 할 것입니다. 해결책이 나쁘다는 이유로 삭제가 충분하지 않습니다. –

관련 문제