綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[求助] 按手機返回鍵會跳出程式(以解決)

[複製連結] 查看: 1246|回覆: 7|好評: 0
跳轉到指定樓層
樓主
i88i632u | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2016-4-9 15:14

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
本帖最後由 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();
}
});
「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)
收藏收藏 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

沙發
bangayegg | 收聽TA | 只看該作者
發表於 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. }
複製代碼

點評

要監聽返回鍵的話,有 onBackPress 的事件唷,不用使用 onKeyDown 來監聽  發表於 2016-4-11 09:52
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

板凳
ploglin | 收聽TA | 只看該作者
發表於 2016-4-11 09:51
應該是你在 startactivity 的下一行下了 finish 的關係。
finish是把當前的 activity 結束,所以你雖然開啟了新的 activity ,卻把原本的 activity 結束了,按下 back 鍵時,已經沒有 activity 活著,所以 APP 就結束了
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 1 反對 0

使用道具 舉報

地板
 樓主| i88i632u | 收聽TA | 只看該作者
發表於 2016-4-11 13:30
ploglin 發表於 2016-4-11 09:51
應該是你在 startactivity 的下一行下了 finish 的關係。
finish是把當前的 activity 結束,所以你雖然開啟 ...

所以我只要把finsh刪除就可以了嗎?
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

5
 樓主| i88i632u | 收聽TA | 只看該作者
發表於 2016-4-11 13:32
所以我只要把finsh刪除就可以了嗎?
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

6
 樓主| i88i632u | 收聽TA | 只看該作者
發表於 2016-4-11 13:42
ploglin 發表於 2016-4-11 09:51
應該是你在 startactivity 的下一行下了 finish 的關係。
finish是把當前的 activity 結束,所以你雖然開啟 ...

謝謝 刪除那行後就可以了

點評

Good!! 加油  發表於 2016-4-12 17:41
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則