Android 台灣中文網

標題: 按手機返回鍵會跳出程式(以解決) [打印本頁]

作者: i88i632u    時間: 2016-4-9 15:14
標題: 按手機返回鍵會跳出程式(以解決)
本帖最後由 i88i632u 於 2016-4-11 13:47 編輯

最近在做學校的專題
我用imageButton1連到下一層layout
但是想要用手機上的返回鍵時卻會跳出程式
只能用第二層的Button才能返回

第一層的java
package com.example.text3;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;


public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageButton button = (ImageButton)findViewById(R.id.imageButton1);
button.setOnClickListener(new ImageButton.OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent();
intent.setClass(MainActivity.this, TestExam002.class);
startActivity(intent);
MainActivity.this.finish();
}
});

第二層的java
package com.example.text3;
import android.annotation.TargetApi;
import android.app.Activity;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.TextView;
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
public class TestExam002 extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout2);
Button button = (Button)findViewById(R.id.Button02);
button.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent();
intent.setClass(TestExam002.this, MainActivity.class);
startActivity(intent);
TestExam002.this.finish();
}
});

作者: bangayegg    時間: 2016-4-11 08:35
  1. public boolean onKeyDown(int keyCode, KeyEvent event)//捕捉返回鍵     
  2. {  
  3.         if ((keyCode == KeyEvent.KEYCODE_BACK))
  4.         {
  5.                 //按下返回鍵要執行的事
  6.                 ...
  7.                 ...
  8.                 ....

  9.                 return true;            
  10.         }
  11.         return super.onKeyDown(keyCode, event);      
  12. }
複製代碼

作者: ploglin    時間: 2016-4-11 09:51
應該是你在 startactivity 的下一行下了 finish 的關係。
finish是把當前的 activity 結束,所以你雖然開啟了新的 activity ,卻把原本的 activity 結束了,按下 back 鍵時,已經沒有 activity 活著,所以 APP 就結束了
作者: i88i632u    時間: 2016-4-11 13:30
ploglin 發表於 2016-4-11 09:51
應該是你在 startactivity 的下一行下了 finish 的關係。
finish是把當前的 activity 結束,所以你雖然開啟 ...

所以我只要把finsh刪除就可以了嗎?

作者: i88i632u    時間: 2016-4-11 13:32
所以我只要把finsh刪除就可以了嗎?
作者: i88i632u    時間: 2016-4-11 13:42
ploglin 發表於 2016-4-11 09:51
應該是你在 startactivity 的下一行下了 finish 的關係。
finish是把當前的 activity 結束,所以你雖然開啟 ...

謝謝 刪除那行後就可以了




歡迎光臨 Android 台灣中文網 (https://apk.tw/) Powered by Discuz! X3.1