2016-08-23 5 views
0

onBackpressed() (하드웨어 버튼)를 사용하여 페이지 B에서 페이지 A로 이동할 수 없으며 전체 프로그램을 종료합니다. :(누군가가 뉴비 도움을 주시기 바랍니다. 지금 칠일 밤낮에 대해 서로 다른 코드를 시도하고있다.onBackpressed() 메서드를 사용하여 밤새도록 깨우침이 가능합니다.

내가 MainActivity.java에 코드를 쓴 다음

 <activity android:name="lk.ceesl.engteachersl.Nounintro" 
      android:parentActivityName="lk.ceesl.engteachersl.MainActivity"> 

     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="lk.ceesl.engteachersl.MainActivity" /> 

     </activity> 

매니페스트 파일 내 부모 활동 이름을 선언 한 onBackpressed() 메소드를

@Override 
public void onBackPressed() { 

    moveTaskToBack(true); 

} 

을 무시하는 것은 지금은 그냥 내가 하드웨어 뒤로 버튼이. 나에게 내 응용 프로그램의 가장 중요한 부분에 대한 해결책을주세요 누르면 백그라운드에서 응용 프로그램 및 실행을 종료하는 HW로 이동한다 뒤로 버튼 (작업 B가 아님) ar backbutton을 누르십시오). 순전히 미리 감사드립니다.

+0

어떻게 MainActivity에서 Nounintro 활동으로 가나 요? –

+0

setContentView (R.layout.activity_nounintro); –

+0

@ FernandoFrancis; 그것은 활동을 시작하지 않고 활동을위한 레이아웃을 설정하는 것입니다. 당신은 어딘가에서 당신의 mainactivity 어딘가에'startActivity (새로운 의도 (MainActivity.this, Nounintro.class));'와 같은 것이 있어야합니다. – 0xDEADC0DE

답변

0

샘플 프로젝트를 만들었습니다. 하나의 활동을 다른 활동으로 이동하기 만하면됩니다.

MainActivity

public class MainActivity extends AppCompatActivity { 

    Button button; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     button = (Button) findViewById(R.id.button); 

     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent intent = new Intent(MainActivity.this,SecondActivity.class); 
       startActivity(intent); 
      } 
     }); 
    } 
} 

activity_main.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.surroundapps.backbutton.MainActivity"> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Go to Second Activity" 
     android:id="@+id/button" 
     android:layout_centerVertical="true" 
     android:layout_centerHorizontal="true"/> 
</RelativeLayout> 

SecondActivity.java

public class SecondActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_second); 
    } 
} 

AndroidManifest.xml에

activity_second.xml

public class SecondActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_second); 
    } 
} 

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.shuvro.backbutton"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> <activity android:name=".SecondActivity"> </activity> </application> </manifest> 
은 당신이

0

활동 B를 시작하는 데 사용한 의도 플래그에 달려 있다고 생각합니다. 이론적으로 올바르게 실행하면 onBackPressed를 재정의 할 필요가 없으며 PARENT_ACTIVITY 메타 데이터가 필요하지 않습니다.

활동 A에서 활동 B를 시작하고 마지막으로 moveTaskToBack 메소드의 내용을 게시하는 코드를 게시하십시오.

+0

moveTaskback()을 잊어 버려주세요. 나는 그것이 실제로 무엇인지 모른 채 그것을 넣었습니다. 이미지 버튼의 onClick 메서드를 호출하여 코드 A를 사용하여 활동 B를 시작합니다.그리고 코드는 B를 시작하는 것입니다 setContentView (R.layout.activity_nounintro); –

+0

및 페이지 A 시작 단일 맨 페이지 B 시작 지정되지 않았습니다. –

+0

당신이 말한대로 항상 DEFAULT ONBACKPRESSED() 메소드를 사용할 수 있도록 B 액티비티를 올바르게 시작하는 방법을 알려주십시오. 그게 내 간단한 학습 애플 리케이션에 필요한 무엇입니까 –

0

당신이 탐색을 위로 구현해야합니까 활동을 탐색하는 방법을 이해하는 데 도움이 될 것입니다 바랍니다. 이것을 참고하십시오 link